前者的 CASE 语句必须是一个表达式(多个表达时用 and or 等连接), 后者是 一个变量或值(多个变量要用英 ...
user3000 发表于 2012-4-2 17:28
"后者是 一个变量或值" ---- 一样的可以是表达式
两者最大的区别在于:Switch语句的Case是否执行依赖于:Switch表达式的值与Case后表达式的值比较(是“=”号比较,而不是“==”比较);
而Select语句的Case执行与否只跟Case后表达值是否为真!
也就是Switch语句中的Case语句都是相关联的,也即只能执行一个条件比较(Switch表达式的值与Case后表达式的值比较);而Select语句中的Case语句可以是毫无关联的,也即可以执行多个条件。其实Au3时引进Select语句有点多余了,把一些独立的条件写在一起来比较,实际意义很小,远不如直接ElseIf来判断清析。所以几乎别的语言都没有Select关键字
$a = "C"
$b = "B"
Switch "C"
Case 0
MsgBox(0, "Switch", 1)
Case "c"
MsgBox(0, "Switch", 2)
EndSwitch
Select
Case 1 > 2
MsgBox(0, "Select", "1>2")
Case $a > $b
MsgBox(0, "Select", "$a > $b")
EndSelect
|