Scala-流程控制

分支

单分支

双分支

多分支

嵌套分支

循环

范围遍历

不含边界范围遍历

遍历集合类型

循环保护式

循环步长

嵌套循环

循环引入变量

倒序打印

循环返回值

 while循环

do while

循环中断

分支

单分支

if (条件表达式) {
执行代码块
}

双分支

if (条件表达式) {
执行代码块 1
} else {
执行代码块 2
}

多分支

if (条件表达式 1) {
执行代码块 1
}
else if (条件表达式 2) {
执行代码块 2
}
 ……
else {
执行代码块 n
}
Scala 中 if else 表达式其实是有返回值的,具体返回值取决于满足条件的
代码体的最后一行内容
var age = StdIn.readInt()
 val res :String = if (age < 18){
 "1"
 }else if(age>=18 && age<30){
 "2"
 }else{
 "3"
 }
 println(res)
 }

嵌套分支

if(){

    if(){
    
    }else{
    }

}else{

}

循环

范围遍历

i 表示循环的变量,<- 规定 to

i 将会从 1-10 循环,前后闭合

for(i <- 1 to 10){
    println(i)
  }

//方法调用与其同理
for(i <- 1.to(10)){
    println(i)
  }

不含边界范围遍历

//使用Range对象
 for(i <- Range(1,10)){
    println(i)
  }

for(i <- 1 until 10){
    println(i)
  }

遍历集合类型

for(i <- Array(1,2,3,4,5,6)){
    println(i)
  }

for(i <- List(1,2,3,4,5,6)){
    println(i)
  }

for(i <- Set(1,2,3,4,5,6)){
    println(i)
  }

循环保护式

for(i <- 1 to 10 if i !=5){
    println(i)
  }

      循环保护式(也称条件判断式,守卫)。保护式为 true 则进入循环 体内部,为 false 则跳过,类似于 continue。

循环步长

for(i <- 1 to 10 by 2){
    println(i)
  }

//浮点步长
for(i <- 1.0 to 10.0 by 0.5){
    println(i)
  }

嵌套循环

for(i <- 1 to 10 by 1){
    for(j <- 1 to 10 by 1){
      println(i,j)
    }

for(i <- 1 to 10; j <- 1 to 10){
    println("i="+i+"j="+j)
    }

实现九九乘法表

for(i <- 1 to 9){
    for(j <- 1 to i){
      print(s"$j * $i = ${i * j} \t")
    }
    println()
    }

for(i <- 1 to 9;j <- 1 to i){
      print(s"$j * $i = ${i * j} \t")
    if(j == i){
      println()
    }
    }

循环引入变量

 for (i <- 1 to 10){
      val j = 10 - i
      println(j)
    }

//for 推导式一行中有多个表达式时,所以要加 ; 来隔断逻辑
for (i <- 1 to 10; j = 10 - i){
      println(j)
    }


//for 推导式有一个不成文的约定:当 for 推导式仅包含单一表达式时使用圆括号,当包含多个表达式时,一般每行一个表达式,并用花括号代替圆括号,如下
for {i <- 1 to 10;
         j = 10 - i
         k = i - 1}{
      println(j)
      println(k)
    }

倒序打印

for(i <- 1 to 10 reverse){
 println(i)
}

循环返回值

val a = for (i <- 1 to 10) yield i
    println(a)

将遍历过程中处理的结果返回到一个新 Vector 集合中,使用 yield 关键字。

 while循环

 var a = 10
    while (a >= 1){
      println("123")
      a -= 1
    }

do while

 var a = 0
    do{
      println(1)
      a -= 1
    } while (a>0)
  }

循环中断

 try {
      for (i <- 0 until 10) {
        if (i == 3)
          throw new RuntimeException
        println(i)
      }
    }catch {
        case e: Exception =>
      }

        Scala 内置控制结构特地去掉了 break 和 continue,是为了更好的适应函数式编程,推 荐使用函数式的风格解决break和continue的功能,而不是一个关键字。Scala中使用breakable 控制结构来实现 break 和 continue 功能。

Breaks.breakable(
      for (i <- 0 until 10){
        if (i == 3)
          Breaks.break()
        println(i)
      }
    )
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

open_test01

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值