Scala基础-3-流程控制

分支

  • Scala中任意表达式都是有返回值的, if-else的返回值取决于代码块中最后一行内容
val res1 = {
    if (Double >= 6) {
        println("Double大于6")
        9+7
        "aaa"
    } else
    	"Double不大于6"
}//res="aaa" 或"Double不大于6"
//没有进入循环时返回值为Unit
  • Scala中没有Switch分支,而是使用模式匹配来处理,后面会涉及到

循环

for循环
//start 表示从几开始循环
//end表循环结束
//start to end表示前后闭合,即[1,3]
for (i<- start to end){
    print(i)
}

//从1输出到3
for (i<-1 to 3){
    print(i)
}
//对集合进行遍历
val list=List("aa","bb","cc","dd")
for (elem <- list) {
    print(elem)
}

循环的几个关键字:

to : 双向闭合, [1,3]

until: 左闭合, [1,3)

  • for循环的循环守卫,即条件判断式

该条件判断式为true进入循环,false则跳过该次循环,类似于continue

//条件判断式: if i%2==0
for (i<- start to end if i%2==0){
    print(i)
}

Scala中去掉了continue和break

跳出循环的三种方法

  • 引入变量

Scala中可以在for中添加变量

//新引入的变量和之前的要使用;隔开
for (i<- start to end; j=4-i; k=j+5){
    print(i)
    print(j)
    println(k)
}
  • 嵌套循环
for (i <- start to end; j <- 4 - i to end; k = j + 5) {
    print(i)
    print(j)
    println(k)
}
//相当于
for (i <- start to end k = j + 5) {
    for( j <- 4 - i to end){
        print(i)
        print(j)
        println(k)
    }
}
  • 循环的返回值
//可以将for循环的结果返回
//将i进行处理并将结果放入一个Vector中并返回给res2, 需要使用yield关键字
val res2= for (i<- 1 to 10) yield {
    if(i%2==0)
    	i*2
    else
    	i
}
print(res2)

可以使用{}来替换for中的()即

//一个约定: for推导式只包含单一表达式时,使用(),包含 多个表达式时使用{},{}中可以使用换行来代替;
val res2= for{i<- 1 to 10
             j=i-10} yield {
    if(i%2==0)
    	i*2
    else
    	i
}
print(res2)
  • for循环的步长怎么控制
//Range(start,end,step)
//相当于i+=2
for (i <- Range(1,3,2)) {
    print(i)
}
while循环
  • 基本语法同java
  • Scala不推荐使用While循环而是推荐使用for循环
  • while没有返回值,或者说返回值是Unit
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值