Scala中的if-else语句是根据一个逻辑表达式的真值(true或者false)来决定是否执行相应的代码。下图说明了if-else语句的执行过程:

1.if语句
if语句由布尔型表达式及后面的语句块组成,格式如下:
if(布尔表达式)
{
// 如果布尔表达式为 true 则执行该语句块
}
如果布尔表达式为 true 则执行大括号内的语句块,否则跳过大括号内的语句块,执行大括号之后的语句块。
举个例子:编辑一个Test1.scala的文本文件,内容如下:
object Test1 {
def main(args: Array[String]) {
var x = 10;
if(x < 20){
println("x < 20");
}
}
}
编译并执行Test1.scala文件,结果如下:
E:\Test>scalac Test1.scala
E:\Test>scala Test1
x < 20
2.if-else语句
if语句后面可以紧跟一个else语句,else内的语句块在表达式值为false时执行,格式如下:
if(布尔表达式){
// 如果布尔表达式为 true 则执行该语句块
}else{
// 如果布尔表达式为 false 则执行该语句块
}
举个例子:编辑一个Test2.scala的文本文件,内容如下:
object Test2 {
def main(args: Array[String]) {
var x = 30;
if(x < 20){
println("x < 20");
}
else{
println("x > 20");
}
}
}
编译并执行Test2.scala文件,结果如下:
E:\Test>scalac Test2.scala
E:\Test>scala Test2
x > 20
3.if-else if-else语句
如果存在多个判断条件,则可以在if-else之间加上若干个else if语句,格式如下:
if(布尔表达式 1){
// 如果布尔表达式 1 为 true 则执行该语句块
}else if(布尔表达式 2){
// 如果布尔表达式 2 为 true 则执行该语句块
}else if(布尔表达式 3){
// 如果布尔表达式 3 为 true 则执行该语句块
}else {
// 如果以上条件都为 false 执行该语句块
}
举个例子:编辑一个Test3.scala的文本文件,内容如下:
object Test3 {
def main(args: Array[String]) {
var x = 30;
if(x == 10){
println("x = 10");
}
else if(x == 20){
println("x = 20");
}
else if(x == 30){
println("x = 30");
}
else{
println("unkonwn x");
}
}
}
编译并执行Test3.scala文件,结果如下:
E:\Test>scalac Test3.scala
E:\Test>scala Test3
x = 30
4.if-else嵌套语句
上面三种情况都是只有一层条件,如果需要在一层分类条件下面再有一层分类条件的话,则可以在if-else if-else语句中嵌套一层if-else if-else语句,当然如果需要,可以没有else if语句或者else语句。嵌套可以有多层,视情况而定。格式如下:
if(布尔表达式 1){
// 如果布尔表达式 1 为 true 则执行该语句块
if(布尔表达式 3){
// 如果布尔表达式 3 为 true 则执行该语句块
}
else if(布尔表达式 4){
// 如果布尔表达式 4 为 true 则执行该语句块
}
}
else if(布尔表达式 2){
// 如果布尔表达式 2 为 true 则执行该语句块
if(布尔表达式 5){
// 如果布尔表达式 5 为 true 则执行该语句块
}
else if(布尔表达式 6){
// 如果布尔表达式 6 为 true 则执行该语句块
}
else{
// 如果布尔表达式 5 和 6 同时为 false 则执行该语句块
}
}
else{
// 如果布尔表达式 1 和 2 同时为 false 则执行该语句块
if(布尔表达式 7){
// 如果布尔表达式 7 为 true 则执行该语句块
} else{
// 如果布尔表达式 7 为 false 则执行该语句块
}
}
举个例子:编辑一个Test4.scala的文本文件,内容如下:
object Test4 {
def main(args: Array[String]) {
var score = 83;
if(score >= 90){
if(score <= 95){
println("A-");
}
else{
println("A+");
}
}
else if(score >= 70){
if(score <= 75){
println("B-");
}
else if(score <= 85){
println("B");
}
else{
println("B+");
}
}
else{
if(score <= 60){
println("F");
}
else{
println("C");
}
}
}
}
编译并执行Test4.scala文件,结果如下:
E:\Test>scalac Test4.scala
E:\Test>scala Test4
B
网友评论