For循环与while循环

53 阅读2分钟

for循环与while循环的区别

object base0928 {
  def main(args:Array[String]): Unit ={
    // 1.for 适用于明确地知道循环起点 和 终点
    //2.while 适用于不确定循环次数的情况

    //for循环
    //1.输出1~100
    for (i <-1to 100)
     if (1%2 ==0)
       println(i)
         


  }

}

循环守卫 * 当后面的条件都满足的时候,才去执行循环体的内容 * * 格式 * for(循环变量 <-起点 to 终点;if(条件1);if(条件2);...if(条件3);){ * println(循环变量)

object base092802 {
  def main(args:Array[String]): Unit ={
    /**
     * 循环守卫
     * 当后面的条件都满足的时候,才去执行循环体的内容
     *
     * 格式
     * for(循环变量 <-起点 to 终点;if(条件1);if(条件2);...if(条件3);){
     *   println(循环变量)
     *   }
     */

    //输出1~100中的能被整除的234的数字
    for (i<- 1 to 100;if (i%2 ==0);if (i%3 ==0);if(i%4 ==0))

  }

}
  • 循环步长
    • 每次循环之后,循环变量的自增数值
    • 格式:
    • for( 循环变量 <- 起点 to 终点 by 步长){
    • println(循环变量)
object base092803 {
  def main(args:Array[String]): Unit ={
    /**
     * 循环步长
     * 每次循环之后,循环变量的自增数值
     *
     * 格式:
     * for( 循环变量 <- 起点 to 终点 by 步长){
     * println(循环变量)
     * }
     */

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

}
object base092804 {
  def main(args:Array[String]): Unit ={
    /**
     * 判断素数。
     * 素数: 只能被1和 它自己整除的数。
     *  eg:2,3,5,7,11,13,17,19......97
     *
     *
     */
      //breakable + break:优化不是素数的情况:提前结束循环
      //Math.sqrt(n) : 减少搜索的范围

    val n =97
    //假设他是素数
    var isPrime = true
    breakable{
      for (i <- 2 to Math.sqrt(n).toInt){
        if (n%i ==0){//能整除
          isPrime = fals
          break
        }
        println(i)
    }



    if (isPrime){
      println(s"${n}是素数")
    }else {
      println(s"${n}不是素数")
    }
  }

}