scala之for循环

2020-01-08  本文已影响0人  虚心若愚_b5c1

循环方式

循环方式1:闭合 to

// 循环遍历[1,3]
for(i<- 1 to 3){
    print(i+" ")
}

循环方式2:前闭合后开 util

// 循环遍历[1,3)
for(i<- 1 until 3){
    print(i+" ")
}

循环守卫

保护式为true则进入循环体,否则则跳过
例子

// 如果i除以2等于0,则打印
// if为关键字隔开所以不用加分号
for(i<- 1 to 3 if i%2 == 0){
    print(i)
}

引入变量

// 如果没有关键字隔开需要加分号
// j为变量
for(i<- 1 to 3; j = i+1){
    print(j)
}

嵌套循环

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

等价于

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

循环返回值

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

// 1. 对1 to 10进行遍历
// 2. yield i 将每次循环得到i,放入到集合vector中,并返回给res
// 3. i这里可以是个代码块,这就意味着我们可以对进行处理
// 4.体现了scala的一个重要的语法特点,就是将一个集合进行处理,并返回给一个新的集合
val res = for (i<- 1 to 10) yield i

println(res)

使用{}替代()

使用{}来换行写表达式时,分号就不用写了

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

等价于

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

循环步长控制

// 范围1到10,步长为5
for(i<- Range(1, 10, 5)){
    println(i)
}
上一篇 下一篇

猜你喜欢

热点阅读