参考:
if 语句包含条件判断部分、执行代码部分。
执行代码部分可以是一句代码(不能是单个分号表示的空语句),或者一个语句块。
而 if 语句将条件表达式返回的结果与布尔值 true 进行比较,比较使用等式运算符( 支持自动类型转换、_eq
元方法 )。
if 语句可选包含任意多个 elseif 分支判断语句,可选在最后包含一个 else 语句。
if 语句可以嵌套使用。
一个标准的 if 语句示例:
import console;
var a=1;
if(b==1){
if(a==1) {
console.log("if");
}
}
elseif(a==11){
console.log("elseif");
}
else{
console.log("else");
}
console.pause();
注意:上面的
elseif
如果改为else if
相当于在else
语句嵌套了一个新的 if 语句,这通常是不必要的。
select case 语句是一种条件分支结构,根据表达式的值执行不同的语句块。
基本结构如下:
// test-expression 指定要匹配的条件表达式
select( test-expression ) {
// 一个或多个 case 语句,用于列举匹配条件表达式的值
case expressionl-list-n {
// 符合条件则执行这对应的语句或语句块
}
// 可选的 case else 语句块
case else {
// 所有条件都不符合时执行这里的默认语句或语句块
}
}
case 语句的条件值支持以下 3 种格式:
case 123
。默认使用恒等运算符比较,可在开始指定比较使用的运算符,例如 case != 10
。case 1,2,3
,任意一个值匹配则满足条件。默认使用恒等运算符比较,可在开始指定比较使用的运算符,例如 case == 1,2,3
。to
分隔的范围值。例如 case 1;10
表示使用恒等运算符匹配 1 到 10 范围(包含首尾数值 1,10)的任意数值是否相等。使用 >=
与 <=
运算符比较,不能自定义运算符。恒等运算符要求要求数据类型绝对相等,不会自动转换类型进行比较。参考链接:恒等运算符
select case 的执行流程如下:
case else
也可以简写为 else
。示例:
var testExpression = 0;
select( testExpression ) {
case 1 {
print("值为 1")
}
case 2,3,4{
print("值为 2,3,4 其中之一")
}
case 5;10 {
print("5 到 10 范围的值")
}
case !== 0 {
console.log("不等于 0")
}
else{
console.log("没有 case 语句符合条件")
}
}
select case 语句也可以嵌套使用,但 select case 语句嵌套的可读性不是很好,一般应当避免这样做。
case 或 else 也可以执行单个语句,示例:
var testExpression = 0;
select( testExpression ) {
case 1 print("值为 1");
case 2,3,4 print("值为 2,3,4 其中之一");
case 5;10 print("5 到 10 范围的值");
case !== 0 console.log("不等于 0");
else console.log("没有 case 语句符合条件");
}
aardio 提供的内置函数 switch 则可以自一个表对象快速检索指定值对象的函数并执行该函数,虽然 switch 函数仅支持表检索方式,但如果有大量需要比对的值, switch 函数检索的速度会快很多。
请参考:switch 函数