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(
"."
)).listFiles
for
(file <- filesHere
if
file.getName.endsWith(
".scala"
)
)
println
(file)
//还可以加入多个过滤条件,用;隔开
for
(file <- filesHere
if
file.isFile;
if
file.getName.endsWith(
".scala"
))
println
(file)
多重循环的实现
可以使用多个变量 <- 表达式
的形式提供多个生成器,用分号将他们隔开
for
(i <-
1
to
3
; j <-
1
to
3
) print((
10
* i +j) +
" "
)
输出 11
12
13
21
22
23
31
32
33