scala控制结构:条件表达式与循环
今天带大家一起过一遍scala语言的基础知识,涵盖if条件表达式、for循环与while循环。
if条件表达式
cd /usr/
local/scala
vim ./mycode/test.scala
object Test {
def main(args: Array[String]) {
var x =
10;
if( x <
20 ){
println(
"x < 20");
}
}
}
保存Test.scala文件,然后,使用下面命令执行代码
$ scalac Test.scala
$ scala Test
x <
20
和Java一样,if语句可以采用各种嵌套的形式,比如:
val x =
3
if (x>
0) {
println(
"This is a positive number")
}
else
if (x==
0) {
println(
"This is a zero")
}
else {
println(
"This is a negative number")
}
但是,有一点与Java不同的是,Scala中的if表达式的值可以赋值给变量,比如:
val x =
6
val a =
if (x>
0)
1
else -
1
while循环
var i =
9
while (i >
0) {
i -=
1
printf(
"i is %d\n",i)
}
var i =
0
do {
i +=
1
println(i)
}
while (i<
5)
for循环
for (变量<-表达式) 语句块
for (i <-
1 to
5) println(i)
语句执行结束后,会打印出下面结果:
1
2
3
4
5
for (i <-
1 to
5 by
2) println(i)
1
3
5
但是,有时候,我们可能不希望打印出所有的结果,我们可能希望过滤出一些满足制定条件的结果,这个时候,就需要使用到称为“守卫(guard)”的表达式。比如,我们只希望输出1到5之中的所有偶数,可以采用以下语句:
for (i <-
1 to
5
if i%
2==
0) println(i)
2
4
scala>
for (i <-
1 to
5
if i%
2==
0) yield i
res3: scala.collection.immutable.IndexedSeq[Int] = Vector(
2,
4)
历史推荐
