Scala的重复与循环

66 阅读1分钟

重复

如下例子,输出1-100中的奇数

  1. 定义变量 sum 用于存储奇数的和,设置初始值为 0;变量 为i ,初始值为 1(从奇数开始)。
  2. 通过 while 循环,只要 i 小于等于 100,就执行循环体。在循环体中,把当前的 i 值累加到 sum 中,然后 i 自增 2,这样每次就会只取奇数,比如 1、3、5等。
  3. 循环结束后,使用 println 输出奇数的和,得到最终结果。
// 把1,2,3,4,5......100 中的奇数输出
var sum = 0
var i = 1
while(i<=100){ // println重复了100次
  sum = sum + i
  i += 2
}
println(s"sum=${sum}")

循环

判断闰年

  1. 用 while(true) 创建一个无限循环

  2. 在循环内部,通过 print 方法提示输入要判断的年份,输入 0 则结束判断

  3. 通过 scala.io.StdIn.readInt() 方法获取用户输入的年份,并赋值给变量 year

  4. 使用 if(year == 0) 判断,如果用户输入的是 0,就执行 break 语句,跳出无限循环,结束判断过程。

  5. 用条件判断 if(year % 400 == 0 || (year % 4 ==0 && year%100 != 0 )) 来判断是否为闰年,闰年的判断规则是:能被 400 整除,或者能被 4 整除但不能被 100整除的年份为闰年。

  6. 如果满足条件,就通过 println(s"$year 是闰年") 输出是闰年;否则,通过 println(s"$year 不是闰年") 输出不是闰年。

当输入 0 后跳出循环,执行 println("系统退出"),提示循环结束系统退出。


def main(args: Array[String]): Unit = {

  // 从循环中跳出来
  // 输入0就结束判断
  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("系统退出")
}

  • 代码中有注释说明两种循环的特点:
  1. do while:无论条件是否成立,循环体至少执行一次。
  2. while:如果条件不成立,循环体不会执行。
var i = 100
do {
println(i)
i += 1
} while(i<=10)

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