Scala学习(四)流程控制

分支控制 if - else

  • 让程序有选择的执行,分支控制有三种:单分支,双分支,多分支
  • 注意事项:
    • 如果大括号{}内的逻辑代码只有一行,大括号可以省略, 这点和java 的规定一样。
    • Scala中任意表达式都是有返回值的,也就意味着if else表达式其实是有返回结果的,具体返回结果的值取决于满足条件的代码体的最后一行内容。
    • Scala中是没有三元运算符,因为 Scala 的if-else 是有返回值的,因此,本身这个语言也不需要三元运算符了,并且可以写在同一行,类似 三元运算
      * val res2 = if(age >= 18) "成年" else "未成年"

单分支

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

双分支

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

多分支

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

嵌套分支

  • 就是条件分支里面还可以嵌套分支
    if (条件表达式){
        if (条件表达式){
      		执行代码
    	}
    }else{
      执行代码
    }

For循环

  • Scala也为for循环这一常见的控制结构提供了非常多的特性,这些for循环的特性被称为for推到或for表达式
  1. 范围数据循环(to):i 将会从 1- 3 ,前后闭合
for(i <- 1 to 3){
 print(i + " ")
}
println()
  1. 范围数据循环(Until):i 是从 1 到 3-1
for(i <- 1 until 3) {
 print(i + " ")
}
println()
  1. 循环守卫
for(i <- 1 to 3 if i != 2) {
 print(i + " ")
}
println()

等价于

for (i <- 1 to 3){
if (i != 2) {
print(i + " ")
}
}
  1. 循环步长
for (i <- 1 to 10 by 2) {
 println("i=" + i)
}

  1. 嵌套循环
for(i <- 1 to 3; j <- 1 to 3) {
 println(" i =" + i + " j = " + j)
}

等价于

for (i <- 1 to 3) {
 for (j <- 1 to 3) {
 println("i =" + i + " j=" + j)
 }
}
  1. 引入变量
for(i <- 1 to 3; j = 4 - i) {
 println("i=" + i + " j=" + j)
}

等价于

for (i <- 1 to 3) {
 var j = 4 - i
 println("i=" + i + " j=" + j)
}
  1. 倒序打印
for(i <- 1 to 10 reverse){
 println(i)
}

While循环控制

  • 基本语法:
while (循环条件) {
 循环体(语句)
 循环变量迭代
}
  • 说明:
    • 循环条件是返回一个布尔值的表达式
    • while 循环是先判断再执行语句
    • 与 for 语句不同,while 语句没有返回值,即整个 while 语句的结果是 Unit 类型()
    • 因为 while 中没有返回值,所以当要用该语句来计算并返回结果时,就不可避免的使用变量,而变量需要声明在 while 循环的外部,那么就等同于循环的内部对外部的变量造成了影响,所以不推荐使用,而是推荐使用 for 循环。

循环中断

  • Scala 内置控制结构特地去掉了 break 和 continue,是为了更好的适应函数式编程,推荐使用函数式的风格解决break和continue的功能,而不是一个关键字。Scala中使用breakable控制结构来实现 break 和 continue 功能。
import scala.util.control.Breaks
def main(args: Array[String]): Unit = {
 Breaks.breakable(
 for (elem <- 1 to 10) {
 println(elem)
 if (elem == 5) Breaks.break()
 }
 )
 println("正常结束循环")
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值