AviatorScript 中的条件语句和其他语言没有太大区别:
if(true) {
println("in if body");
}
上面的代码执行,将打印 in if body
。 if 接受一个布尔表达式,如果其值为 true
就执行后续的代码块。如果为 false
,可以带上 else
语句执行其中的代码块,代码块都是以大括号包起来:
if(false) {
println("in if body");
} else {
println("in else body");
}
请注意,代码块都必须用大括号包起来,哪怕是单行语句,这跟 java 是不一样的。
if
后面连着的表达式的括号是可以忽略,上面的例子可以改写成:
if false {
println("in if body");
} else {
println("in else body");
}
连续的条件判断可以用复杂的
if test1 {
...
} else {
if test2 {
...
} else {
if test3 {
...
} else ...
}
}
嵌套结构,但是更应该直接使用 elsif
语句,类似 Java 中的 else if
,比如我们写一个猜数字的例子:
## examples/if.av
let a = rand(1100);
if a > 1000 {
println("a is greater than 1000.");
} elsif a > 100 {
println("a is greater than 100.");
} elsif a > 10 {
println("a is greater than 10.");
} else {
println("a is less than 10 ");
}
println("a is " + a + ".");
比如上面的代码写生成一个 [0, 1100)
内的整数,然后通过一系列条件语句,判断 a
的范围,并打印相应的字符串,最后打印 a
的值是多少。同样 elsif
对应的判断语句的括号也是可以忽略的。