for循环

87 阅读2分钟

一、for循环的学习

for 与 while循环的区别

for:适用于明确的知道循环起点和终点

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

while:适用于不确定循环次数的情况下

例题:输出1~100

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

  // 输出1~100
  for(i <- 1 to 100){
    println(i)
  }
  // var i = 1
  // while(i <= 100){
  // println(i)
}

二、循环守卫

循环守卫:当后面的条件都满足的时候,才去执行循环的内容

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

例题:

def main(args: Array[String]): Unit = {
 // 循环守卫
  // 当后面的条件都满足时候。才去执行循环的内容

  // for循环格式:for(循环变量 <- 起点 to 终点; if(条件1); if(条件2;...if(条件3)){
  // 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)
  }
}

三、循环步长

循环步长:每次循环之前,循环变量的自增数值

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

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

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

四、break 跳出 for循环

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

例题:

def main(args: Array[String]): Unit = {
/*
break 跳出 for循环
格式:
breakable{
for(循环变量 <- 起点 to 终点 by 步长){
println(i)
break
  }
}
*/
  breakable {
    for (i <- 1 to 100){
      // 如果遇到了第一个能整除9的数字就提前结束循环
      if (i % 9 == 0){
        // 结束循环
        break
      }
      println(i)
    }
  }
}

例题:判断素数

 def main(args: Array[String]): Unit = {
/**
 * 判断素数
 * 素数:只能被1 和 它自己整除的数。
 * eg:2,3,5,7,11,13,17....97
 *
 * 思路:用2 ~ (n-1) 依次去除这个数,如果能整除就说明不是素数
 * 例如:
 * n = 9
 * 1.2 不能整除
 * 2.3 能整除(不是素数)
 *
 * n = 35
 * 1.2 不能整除
 * 2.3 不能整除
 * 3.4 不能整除
 * 4.5 能整除(不是素数)
 */
   val n = 35
   // 假设它是素数
   var isPrime = true
   breakable{
     for(i <- 2 to Math.sqrt(n).toInt){
       if(n%i == 0){
         isPrime = false
         break
       }
       println(i)
     }
   }

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