While循环

63 阅读1分钟

while循环

/*
  while (条件){
  循环体
  i +=1
}
*/

这就是while循环的格式

1.如何将I miss you重复输出3000次

var i =1
while (i<=3000){
  println("I miss you")
  i = i+1

2.输出1-100里的奇数,每个一列

var i = 1
while (i <= 100) {
  if (i % 2 == 1) {
    println("i=", i)
  }
  i=i+1
}

3.求1-100的和并输出

var sum =0
var i =1
while(i<=100){
  sum = sum +i
  i=i+1
}
println(sum)

4.求1-100的奇数和并输出

var sum =0
  var i =1
  while(i<=100){
    if(i % 2 ==1) {
      sum = sum + i
    }
    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关键字,而是使用面向对象的方式来代替,底层会抛出异常来跳出循环,外层捕获异常。


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("死循环结束,程序退出")

最开始break和breakable会冒红光报错,但是可以用鼠标导入"import scala.util.control.Breaks.{break, breakable}"

do while循环

和while相比,do while会强行运行一次,在实际的代码中还是while循环用的较多