例:如何把”i miss you ”重复3次?
object base16 {
def main(args: Array[String]): Unit = {
var i=1
while(i<4){
println(s"$i.I miss you!")
i =i+1
}
}
}
结果如图:
(一)while循环
格式:
while(condition) {
statement(s)
}
流程
例:输出1~100内的奇数,每个一行
object base17 {
def main(args: Array[String]): Unit = {
// 输出1~100内的奇数,每个一行
var i= 1
while (i<= 100){
println(i)
i +=1
}
}
}
结果如图:
例:求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)
}
}
结果如图
(二)while死循环
在需要一直执行的时候,就可以使用死循环。例如,不停地判断用户的输入的内容是否是闰年。
例子:判断一个年份是否是闰年 根据国际标准,一个年份被视为闰年的条件是,如下条件满足任意一个:
(1)能够被4整除,并且不能被100整除的年份是闰年。
(2)能够被400整除的年份同样也是闰年。
object base19 {
def main(args: Array[String]): Unit = {
// while(true){
// println("1")
// }
while (true){ //while死循环
// 请输入一个年份,判断是否闰年
print("请输入一个年份:")
var 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 base20 {
def main(args: Array[String]): Unit = {
// 1. 自动跳出:循环条件不成立,就会自动结束循环
// 2. 手动跳出循环 break
/**
* breakable{
* while(true){
* // 循环的内容
* if(某个特殊的条件成立){
* break
* }
* }
* }
*/
breakable{
// 不停地判断用户输入的年份是否闰年。当用户输入0的时候,结束程序
while(true){
// 请输入一个年份,判断是否闰年
print("请输入一个年份:")
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("欢迎下次使用")
}
}
结果如图:
(四)do while循环
[强调]:do ... while 和while的区别在于,一定会执行一次。
object base21 {
def main(args: Array[String]): Unit = {
// while
// 特点: 先判断条件,再执行。所以,条件不满足时,循环体不会执行
// do ... while
// 特点:至少要执行一次!先执行,再判断条件。
var i = 100
do{
println(i)
i = i + 1
} while(i <= 10)
// var i = 100
// while(i <= 10){
// println(i)
// i = i + 1
// }
println("欢迎下次使用!")
}
}