Scala中的while循环语句

58 阅读1分钟

while循环

循环就是重复执行多次。

格式

while(condition) {// 满足条件就执行,如果条件一直满足,就一直执行。  
  statement(s)  
}

image.png

如何把”i miss you ”重复输出3000次?


object txy10 {
  def main(args: Array[String]): Unit = {
    var i = 1
    while(i <= 3000){
      println(s"$i I miss you" )
      i = i + 1
    }
  }
}

输入1-100内的奇数,每个一行

普通方法

object txy11 {
  def main(args: Array[String]): Unit = {
    var i = 1
    while(i <= 100){
      println(i)
      i = i + 2
    }
  }
}

while循环中套入if语句执行


object txy11 {
  def main(args: Array[String]): Unit = {
    var i = 1
    while(i <= 100){
      if(i%2 == 1 ){
        println(i)
      }
      i = i + 1
    }
  }
}

求1-100的和


object txy12 {
  def main(args: Array[String]): Unit = {
    var sum = 0
    var i= 1
    while(i <= 100){
      sum = sum + i
      i = i+1
    }
    println(sum)
  }
}

求1-100中所有能被三整除的数


object txy13 {
  def main(args: Array[String]): Unit = {
    var i = 1
    while(i <= 100){
      if(i%3 == 0){
        println(i)
      }
      i = i + 1
    }
  }
}

while死循环

在需要一直执行的时候,就可以使用死循环。例如,不停地判断用户的输入的内容是否是闰年。

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

死循环是一个种非常使用的结果,它能确保核心逻辑一直被调用中。

通过breakable跳出死循环(当年份输入0时自动跳出)

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

object txy14 {
  def main(args: Array[String]): Unit = {
    breakable {
      while (true) {
        println("请输入一个年份:")
        var year = scala.io.StdIn.readInt()
        if (year == 0) {
          println("感谢你的使用,欢迎下次使用")
          break
        }
        if (year % 400 == 0 || year % 4 == 0 && year % 100 != 0) {
          println(s"$year 是闰年")
        } else {
          println(s"$year 不是闰年")
        }
      }
    }
  }
}