(六)内建控制-循环语句while

55 阅读1分钟

(一)while循环

如何把”i miss you ”重复3次?
object Base16 {
  def main(args: Array[String]): Unit = {
    // 如何打印 I miss you! 3000次
    // 循环 while
    var i = 1;
    while(i<4){
      println(s"$i. I miss you!")
      i = i + 1
    }
  }

}
输出1~100内的奇数,每个一行
object Base17 {
  def main(args: Array[String]): Unit = {
    // 输出1 ~ 100 内的奇数,每行一个
    var i = 1
    while(i <= 100){
      println(i)
      i += 2
    }
  }

}
输出1 ~ 100 的和
object Base18 {
  def main(args: Array[String]): Unit = {
    // 1 ~ 100 的和
    // 循环
    var sum = 0
    var i = 1
    while ( i<=100 ){
      sum = sum + i
      i += 1
    }
    println(sum)
  }



}
1 ~ 100 的和,能被3整除的数的和
object Base19 {
  def main(args: Array[String]): Unit = {
    // 1 ~ 100 的和
    // 循环
    // var sum = 0
    // var i = 1
    // while ( i<=100 ){
    // sum = sum + i
    //    i += 1
    // }
    // println(sum)
    // }

    // 1 ~ 100 的和,能被3整除的数的和
    var i = 3
    var sum = 0
    while (i <= 100) {
      sum += i
      i += 3
    }
    println(sum)
  }



}
请输入一个年份,判断是否闰年
object Base20 {
  def main(args: Array[String]): Unit = {
    //
    //
    while(true){
      //请输入一个年份,判断是否闰年
      print("请输入一个年份:")
      val year = scala.io.StdIn.readInt()
      if(year%400==0 || (year%4==0 && year%100!=0)){
        println(s"$year 是一个闰年")
      }else{
        println(s"$year 不是一个闰年")
      }
    }
  }



}

(三)break

scala中没有现成的break关键字,而是使用面向对象的方式来代替,底层会抛出异常来跳出循环,外层捕获异常。

import scala.util.control.Breaks.{break,breakable}
object Base21 {
  def main(args: Array[String]): Unit = {
    //
    breakable {
      //不停地判断新用户输入的年份是否闰年。当用户输入的时候,结束程序
      while (true) {
        //请输入一个年份,判断是否闰年
        print("请输入一个年份(输入0可结束程序):")
        val year = scala.io.StdIn.readInt()
        if(year == 0){
          break
        }

        if (year % 400 == 0 || (year % 4 == 0 && year % 100 != 0)) {
          println(s"$year 是一个闰年")
        } else {
          println(s"$year 不是一个闰年")
        }
      }
    }
    println("欢迎下次使用")
  }

}