循环

17 阅读3分钟

一、for 循环

1.格式:

for(循环变量 <- 起点 to 终点)

css
 体验AI代码助手
 代码解读
复制代码
object xy16 {
  def main(args: Array[String]): Unit = {
    /*
    for 循环
    格式:
    for(循环变量 <- 起点 to 终点)

    for 循环 and while 循环
    1.for 适用于明确知道循环的起点与终点
    2.while 适用于不确定循环次数的情况
     */
    // 输出1~100
    for (i <- 1 to 100){
      println(i)
    }

// while 循环输出1~100
//var i = 1
//while (i <=100){
//   println(i)
//   i+=1
// }

二、循环守卫

1.当后面的条件都满足时,才去执行循环体内容

2.格式:  for(循环变量 <- 起点 to 终点; if(条件1); if(条件2))

css
 体验AI代码助手
 代码解读
复制代码
object xy17 {
  def main(args: Array[String]): Unit = {
    /*
    循环守卫
    当后面的条件都满足时,才去执行循环体内容

    格式:
    for(循环变量 <- 起点 to 终点; if(条件1); if(条件2))
     */

    // 输出1~100之间能整除23的数字
    for (i <- 1 to 100; if(i%2==0); if (i%3==0)){
      println(i)
    }
  }
}

三、循环步长

1.每次循环后,循环变量的自增数值

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

css
 体验AI代码助手
 代码解读
复制代码
object xy18 {
  def main(args: Array[String]): Unit = {
    /*
    循环步长
    每次循环后,循环变量的自增数值

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

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


  }

}

四、break 跳出 for 循环

kotlin
 体验AI代码助手
 代码解读
复制代码
import scala.util.control.Breaks.{break, breakable}

object base24 {
  def main(args: Array[String]): Unit = {
    /*
    break 跳出 for 循环

    格式:
    breakable{
    for(循环变量 <- 起点 to 终点){
        break
      }
   }
     */

    // 输出1~100之间能整除2,3的数字
    breakable{
      for (i <- 1 to 100){
        //如果遇到第一个能整除9的数字提前结束循环
        if (i%9==0){
          //结束循环
          break
        }
      }
    }



  }

}

五、练习

1.只能被1和它本身整除的数是素数。2 3 5 7 11 13 17 19...

2.可以从2开始到n-1为止,依次去除这个数n,如果能被除,就不是素数。

3.设置一个变量,初始值为true,表示它是一个素数,在循环内部,如果有整除的情况,就把它设置为false。

4.循环结束之后,检查变量的值,看看是不是素数。

object
 体验AI代码助手
 代码解读
复制代码
    def main(args: Array[String]): Unit = {
      /*
      1.只能被1和它本身整除的数是素数。2 3 5 7 11 13 17 19...
  2.可以从2开始到n-1为止,依次去除这个数n,如果能被除,就不是素数。
  3.设置一个变量,初始值为true,表示它是一个素数,在循环内部,如果有整除的情况,就把它设置为false。
  4.循环结束之后,检查变量的值,看看是不是素数。
       */
      /**
       * 判断素数
       * 素数:只能被1和它本身整除
       * eg:2、3、5、7、11、19.....97
       *
       * 思路:用2~(n-1)依次去除这个数,如果能被整除说明不是素数!
       * 例如:
       *     n=9
       *  1. 2不能整除
       *  2. 3能整除(不是素数)
       *
       *    n=7
       * 1. 2不能整除
       * 2. 3不能整除
       * 3. 4不能整除
       * 4. 5不能整除
       * 5. 6不能整除
       * 所以7是素数!
       *
       */

      val n=35
      // 假设它是素数
      var isPrime = true
      for (i <-2 to n-1){
        if (n%2==0){//能整除
          isPrime = false
        }
      }
      if (isPrime){
        println(s"${n}是素数")
      }else{
        println(s"${n}不是素数")
      }


    }



}

优化

breakable + break :优化不是素数的情况:提前结束

Math.sqrt(n):减少搜索的范围