内建控制-循环语句while

41 阅读1分钟

(一)while循环

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

    //while 循环的基本格式

    /*
    var i = 0 //循环变量,控制重复的次数

    while(条件){
         循环体
         i +=1
    }
     */
     var i = 1
     while(i <= 10){
       println(s"${i}.I miss you")
       i += 1
     }
  }
}

循环就是重复执行多次。

while格式

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

while流程

屏幕截图 2025-09-23 111058.png

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

求1-100的和

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

(二)while死循环

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

object Main {  
  def main(args: Array[String]): Unit = {  
    while(true){  
      var year = scala.io.StdIn.readInt()  
      if(year%400 ==0 || (year%4==0 && year%100 !=0)) {  
println(s"$year 是闰年")  
      } else {  
         println(s"$year 不是闰年")  
      }  
      i += 1  
    }  
  }  
}

(三)break

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

[import scala.util.control.Breaks]()._  
object Main {  
  def main(args: Array[String]): Unit = {  
    breakable {  
      while (true) {  
          // 你的代码  
          break  
      }  
    }  
  }  
}

判断用户输入的年份是否是闰年,如果用户输入0,则结束判断。

object Main {  
  def main(args: Array[String]): Unit = {  
    breakable {  
  
    while(true){  
      var 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 不是闰年")  
      }  
    }  
  }  
}

(四)do while循环

格式:

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

示意图:

屏幕截图 2025-09-29 150813.png

输出1 - 10 代码如下

[var i=1]()  
do{  
    println(s"i=$i")  
     i+=1  
  }while(i<= 10)

强调:do ... while 和while的区别在于,一定会执行一次。

写如下例子,说明一定会执行一次。

var i=1]()  
do{  
    println(s"i=$i")  
     i+=1  
  }while(i<1)