JAVA中诸如IF条件表达式和FOR、WHILE等循环语句随处可见,SCALA也同样有这些条件表达式和循环语句。
IF条件表达式
语法
if…else 语句 (else可以省略)
if(布尔表达式){
// 如果布尔表达式为 true 则执行该语句块
}else{
// 如果布尔表达式为 false 则执行该语句块
}
if…else if…else 语句
if(布尔表达式 1){
// 如果布尔表达式 1 为 true 则执行该语句块
}else if(布尔表达式 2){
// 如果布尔表达式 2 为 true 则执行该语句块
}else if(布尔表达式 3){
// 如果布尔表达式 3 为 true 则执行该语句块
}else {
// 如果以上条件都为 false 执行该语句块
}
案例
object HelloScala {
def main(args: Array[String]): Unit = {
val x = 8
//如果只有一句 那么可以省略块表达式
val y = if (x > 10) 1 else -1
println(y)
//可以缺失else,相当于 if(x > 10) 1 else ()
val z = if (x > 10) 1
println(z)
// if...else if...else
val m = if (x > 10) 1 else if (x < 9) 2 else 3
println(m)
//支持块表达式,即像java那样用括号括起来
val n = if (x > 10) {
1
} else if (x < 9) {
2
} else {
3
}
println(n)
}
}
FOR循环
用来重复执行一系列语句直到达成特定条件达成,一般通过在每次循环完成后增加计数器的值来实现。
语法
//Range|List|Array分别表示区间/数组/集合。
for( var x
statement(s);
}
案例
object HelloScala {
def main(args: Array[String]): Unit = {
//区间 i to j(包含j)
for( i
//区间 i until j(不包含j)
for( i
//循环数组
val arr = Array("a","b","c")
for ( i
//循环集合
val list=List(1,"a",'c')
for ( i
//高级for循环 含过滤语句
for ( i
//for循环使用yield:将 for 循环的返回值作为一个变量存储
var forresule = for(i
println(forresule)//输出Vector(1, 4, 9, 16, 25)
}
While循环
运行一系列语句,如果条件为true,会重复运行,直到条件变为false。
语法
while(condition)
{
statement(s);
}
案例
def main(args: Array[String]): Unit = {
var x = 11
while (x > 10 && x < 20) {
println(x);
x = x + 1;
}
}
Do..While循环
类似 while 语句区别在于判断循环条件之前,先执行一次循环的代码块。
语法
do {
statement(s);
} while( condition );
案例
对比while和do while,while中的语句是不会被执行的,但是do while中的会被执行。因为do while在进行判断的时候先操作了一次代码块,使得x变为了11符合了判断条件。
def main(args: Array[String]): Unit = {
var x = 10
while (x > 10 && x < 20) {
println("while:"+x);
x = x + 1;
}
do{
println("do while:"+x);
x = x + 1;
}while(x > 10 && x < 20);
}
BDStar原创文章。发布者:Liuyanling,转载请注明出处:http://bigdata-star.com/archives/1523