内建控制-循环语句for循环

71 阅读1分钟

一. for循环

object base25 {
  def main(args: Array[String]): Unit = {
    /*
        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
    }
    */
  }
}

说明: 1.如果循环变量的类型能被推断出来,是可以省略掉变量类型的。 2.这里的数据集可以是任意类型的数据集合,如字符串,集合,数组等等。

二. 循环守卫

定义:可以在循环中添加条件,如果条件成立就执行循环。

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

三. 循环步长

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

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

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

四. continue

import scala.util.control.Breaks.{break, breakable}

object base28 {
  def main(args: Array[String]): Unit = {
    /**
     * break跳出for循环
     *
     * 格式:
     * breakable{
     *    for( 循环变量 <- 起点 to 终点 by 步) {
     *
     *        break
     *        }
     *
     * }
     */

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