Scala学习(3)|—程序控制结构

时间:2022-02-20 05:28:43

1.if的使用

Scala的if/else语法结构和Java或C++一样。不过,在Scala中if/else表达式有值,这个值就是跟在if或者else之后的表达式的值,这也是if在Scala

与Java中的区别

例如:var x = if ( 'y' == 'y') 0 else 1 注意当,if 后的值 和 else 后的值类型不一样是,此时返回值的类型是他们的超类 Any,如果else 缺失,则在不满足

if的条件下,会返回Unit,即() 类型,注:赋值语句的值是Unit类型的,所以 x = y = 1 //这样是错的

2.while 和 do while的使用

与Java中用法一样,其返回值为Unit,所以不能用于赋值

3.for循环的使用

如下图

var a = new Array[String](3)
a(0) = "a"
a(1) = "b"
a(2) = "c"
for ( x <- a ){
print(x)
}

可以看出 利用 <- 符号循环便利数组a, 一次将a中的值赋给变量x,进行处理

另外,在for循环中还可以加入 if 进行判断,例如val filesHere = (new java.io.File(".")).listFilesfor (file <- filesHere if file.getName.endsWith(".scala"))println(file)//还可以加入多个过滤条件,用;隔开for (file <- filesHereif file.isFile;if file.getName.endsWith(".scala"))println(file)

多重循环的实现
可以使用多个变量
<- 表达式
的形式提供多个生成器,用分号将他们隔开

for(i <- 1to3; j <- 1to3) print((10 * i +j) + " ")输出 111213212223313233