for循环

49 阅读1分钟

for循环

    // 1.输出1——100
    for(i <- 1  to  100){
      println(i)
    }


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

循环守卫

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

    // 输出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 步长 ){
 *
 *     printf(循环变量);
 * }
 *
 */

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

break

breakable {
  for (i <- 1 to 100) {
    // 如果遇到了第一个能被9除的数字就提前结束循环
    if (i % 9 == 0) {
      // 结束循环
      break
    }
    println(i)
  }

判断素数

// breakable + break:优化不是素数的情况:提前结束循环
// Math.sqrt(n):减少搜索的范围

    val n = 97
    // 假设它是素数
    var isPrime = true
    breakable {
      for (i <- 2 to Math.sqrt(n).toInt) {
        if (n%i == 0) { // 能整除,结束循环
          println(s"${i}能整除")
          isPrime = false
          break
        }
        println(i)
      }
    }

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