内建控制-循环语句while

61 阅读1分钟

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

object Base15 {
  def main(args: Array[String]): Unit = {
    // 如何打印I miss you! 300次
    // 循环while
    var i = 1; // 循环变量。 i,j,k
    while(i<4){
      println(s"$i. I miss you")
      i += 1
    }
    }
}

一.while循环、

格式

while(condition) {  
  statement(s)  
}

image.png

例:输出1~5

var i=0   
while(i<5){  
  println(s"i=$i")  
  i+=1  
}

例:输出1~100内的奇数,每个一行

object Base16 {
  def main(args: Array[String]): Unit = {
    var i = 1
    while(i <= 100){
//      如果i是奇数,就打印
      if(i%2 == 1){
        println(i)
      }
      i += 1
    }
  }
}

例:求1-100的和

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

二.do while循环

格式:

do {  
   statement(s);  
} while( condition );

屏幕截图 2025-09-18 091350.png

object Base18 {
  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 不是一个闰年")
      }
    }
  }
}
注:do ... while 和while的区别在于,一定会执行一次。
object Base20 {
  def main(args: Array[String]): Unit = {
    // while
    //特点:先判断条件,再执行。所以,条件不满足时,循环体不会执行
    // do ... while
    // 特点:至少要执行一次!先执行,再判断条件
    var i = 100
    do{
      println(i)
      i = i + 1
    } while(i <= 10)
    println("欢迎下次使用!")

  }
}
object Base21 {
  def main(args: Array[String]): Unit = {
    // 已知: 1 + 2 + 3 + 4 ...... + 19 = 190
    var i = 1
    var sum = 0
    while(i <= 19){
      println(i)
      sum += 1 // sum = sum + i
      i = i + 1
    } 
    println(s"${sum}")

  }
}

三.break

import scala.util.control.Breaks.{break, breakable}
object Base19 {
  def main(args: Array[String]): Unit = {
    // 跳出循环
    // 1.自动跳出。循环条件不成立,就会自动结束循环
    // 2. 手动跳出循环。break

    breakable {
      // 不停地判断用户输入的年份是否闰年。当用户输入0的时候,结束程序
      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("欢迎下次使用!")
  }
}

屏幕截图 2025-09-24 104425.png

object Base23 {
  def main(args: Array[String]): Unit = {
    // 已知: 1 + 2 + 3 + 4 ...... + 19 = 190
    var i = 1
    var money = 1.0 //本金
    while(i < 10){
      money = money * 1.1
      i = i + 1
      println(s"第${i}年结束时,钱数为${money}")
    }
    println(i)
  }
}