内建控制-循环语句for循环

92 阅读1分钟

主要内容如下

1.for循环的基本使用

2.for循环守卫

3.循环步长

4.循环的返回值

5.continue语句

(一)for循环

格式如下:

[for ( 循环变量 <- 数据集) {]()  
  // 循环体代码  
}

输出 1 - 10

var array = 1 to 5 // 1,2,3,4,5]()  
var array2 = 1 until 5 // 1,2,3,4  
for (i <- array){  
  println(i)  
}

运行结果如下

屏幕截图 2025-09-30 085502.png

代码说明:

1.1 until 5 等价于 Range(1,5)

代码如下:输出指定字符串数组

val fruits = List("apple","banana","origane","strawberry")]()  
for(fruit <- fruits){  
  println("fruit is " + fruit)  
}

(二)循环守卫

可以在循环中添加条件,如果条件成立就执行循环。这个叫循环守卫。

讲授 格式:

for(循环变量 <- 数据集 if condition1; if condition2 ...){]()  
  循环体  
}

打印1 - 10 内的偶数

for(i <- 1 to 10; if(i%2==0)){println(i)}

(三)循环步长

[提问] :如何输出1 ~ 100 之间的奇数?

按1,3,5... 这个格式来输出,这就涉及到步长。

格式1:1 to 5 by 2

格式2:Range(1,5,2)

编码演示:

object base24 {
  def main(args: Array[String]): Unit = {
    /*
    循环步长
    每次循环后,循环变量的自增数值

    格式:
    for(循环变量 <- 起点 to 终点 by 步长){
      println(循环变量)
    }
     */

    // 输出1~100中的奇数
    for (i <- 99 to 1 by -2){
      println(i)
    }
  }
}

(四)循环的返回值

val ret = for(i <- 1 to 3) yield { i*2 }]()  
println(ret)  
println(ret(1))

(五)continue

在scala中是没有break和continue关键字的,如果一定要用,可以用scala.util.control包下的Breaks类的break

import scala.util.control.Breaks._]()  
object MainFor {  
  def main(args: Array[String]): Unit = {  
     for(i <- 1 to 10){  
       breakable {  
         if(i%3 == 0){  
           //         continue  
           break  
         }  
         println(i)  
       }  
     }  
  }  
}