b

41 阅读2分钟

内容重点:

1. for语句的基本格式;

2. for和while的区别;

3. continue语句;

一,for语句的基本格式:

1,基本格式

scala
 体验AI代码助手
 代码解读
复制代码

for ( 循环变量 <- 数据集) {]()  

  // 循环体代码  
  
}

代码示例: 输出 1 - 10

scala
 体验AI代码助手
 代码解读
复制代码
object for01 {
  def main(args: Array[String]): Unit = {
    //for循环
    //for v.s. while
    //1, for循环适用于明确地知道循环起点和终点
    //2, while适用于不确定循环次数的情况

    //1,输出1-100
    for(i <- 1 to 100) {
      println(i)

      /*
      var i = 1
      while(i <= 100){
        println(i)
        i += 1
      {
       */
    }

  }
}

2,循环守卫

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

scala
 体验AI代码助手
 代码解读
复制代码
object for02 {
  def main(args: Array[String]): Unit = {
    /**
     * 循环守卫
     * 当后面的条件都满足的时候,才去执行循环体的内容
     * 格式:
     * for( 循环变量 <- 起点 to 终点; if(条件1);if(条件2)....){
     *    println(循环变量)
     * }
     */
    // 输出1-100 中的可以整除2,3,4的数字
    for (i <- 1 to 100; if(i%2 == 0);if(i%3 == 0);if(i%4 == 0)){
      println(i)
    }
  }
}

3,循环步长

代码示例如下:

scala
 体验AI代码助手
 代码解读
复制代码
object for02 {
  def main(args: Array[String]): Unit = {
    /**
     * 循环步长
     * 每次循环后,循环变量的自增数值
     * 格式:
     * for( 循环变量 <- 起点 to 终点 by 步长){
     *    println(循环变量)
     * }
     */
    // 输出1-100 中的奇数
    for (j <- 1 to 100 by 20){
      println(j)
    }
  }
}

4,循环的返回值

for也可以获取到返回值,使用yield。 代码示例如下:

scala
 体验AI代码助手
 代码解读
复制代码
val res = for(i <- 1 to 3) yield { i*2 }]()  
println(res)  
println(res(1))

5, continue

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

scala
 体验AI代码助手
 代码解读
复制代码
import scala.util.control.Breaks.()  
object for03 {  
  def main(args: Array[String]): Unit = {  
     for(i <- 1 to 10){  
       breakable {  
         if(i%3 == 0){  
           //         continue  
           break  
         }  
         println(i)  
       }  
     }  
  }  
}

6,习题示例如下:

判断是否为“素数”

scala
 体验AI代码助手
 代码解读
复制代码
object for03 {
  def main(args: Array[String]): Unit = {
    /**
     * 判断素数
     * 素数:只能被1 和 它本身整除的数
     * eg:2.3.5.7.....
     *
     * 思路:用2-(n-1)依次除这个数,如果能整除就不是素数;
      */
    val n = 97
    // 假设是素数
    var isPrime = true
    for (i <- 2 to n-1){
      if(n%i == 0){ //能整除
        isPrime = false
      }
    }
    if(isPrime){
      println(s"${n}是素数")
    }else{
      println(s"${n}不是素数")
    }
  }
}