scala基础语法3--流程控制

一、与java一样有如下

顺序控制

分支控制

3)循环控制

注:IDEA 快捷键 ctrl+b可以查看源码

二、if分支

在做数学计算的时候,scala 包中(默认引入的) math 的包对象有很多方法直接可用

x1.formatted("%.2f") 是保留两位小数,实际项目中可能有需要用到

嵌套分支不要超过 3

scala 中没有 switch,而是使用模式匹配来处理

三、for循环

for 导式for comprehension)或 for 表达式for expression

方式1--to

for(i <- 1 to 3){
 print(i + " ")
}

说明
i 表示循环的变量, <- 规定好 to 规定
i 将会从 1-3 循环, 前后闭合
var list = List("hi", 100, 50, "kitty")
    for (item <- list) {
      println("item=" + item)
    }

方式2--util

for(i <- 1 until 5) {
 print(i + " ")
}
println()
 说明:
1) 这种方式和前面的区别在于 i 是从 1 到 5-1
2) 前闭合后开的范围,和 java 的 arr.length() 类似
for (int i = 0; i < arr.lenght; i++){}

循环守卫,可以理解为条件判断,boolean的判断

for(i <- 1 to 3 if i != 2) {
 print(i + " ")
}
println()

引入变量

for(i <- 1 to 3; j = 4 - i) {
 print(j + " ") // 3,2,1
 }

嵌套循环

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

循环返回值

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

将遍历过程中处理的结果返回到一个新 Vector 集合中, i 这里是一个代码块,这就意味我们可以对 i 进行处理

使用花括号代替小括号(目前项目中没有使用,暂时不记录)

scala for 循环形式和 java 是较大差异,请注意写法

步长控制

for (i <- Range(1, 10, 2)) {
 println("i=" + i)
 }

四、while循环(实际项目中如果涉及变量还是建议for循环)

scala去掉了break和continue,为了实现该功能,建议使用函数式方法

引入的包  import util.control.Breaks._

def main(args: Array[String]): Unit = {
    var n = 1
    // 传入的是代码块,scala 程序员会将() 改成{}
    breakable {
      while (n <= 20) {
        n += 1
        println("n=" + n)
        if (n == 10) {
          //中断 while
          //1. 在 scala 中使用函数式的 break 函数中断循环
          //2. def break(): Nothing = { throw breakException }
          break()
        }
      }
    }
}
使用 if else 或是 循环守卫实现 continue 
for (i <- 1 to 10 if (i != 2 && i != 3)) {
 println("i=" + i)
 }
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值