Scala内建控制-循环语句while

64 阅读1分钟

While循环

while语句的格式:

while(条件) {// 满足条件就执行,如果条件一直满足,          循环体          就一直执行。
     i+=1
}
案例1:把1,2,3,4,5.....100中的奇数输出

示例代码如下:

object day14 {
  def main(args: Array[String]) = {
    //把1,2,3,4,5.....100中的奇数输出
    //方法1:
    var i=1
    while(i<=100){
      println(i)//println重复了100次
      i+=2
    }
    //方法2:
    var a=1
    while (i<=100){
      if(i%2!=0){
        println(i)
      }
    }
  }
}
案例2:求1-100的和

示例代码如下:

object day14 {
  def main(args: Array[String]): Unit = {
    var sum = 0
    var i = 1
    while(i <= 100){
       sum=sum +i
       i += 1
    }
    println(s"sum=${sum}")
  }
}
案例3:1~100的奇数和

示例代码如下:

object day15 {
  def main(args: Array[String]) = {
    var sum=0
    var i=1
    while(i<=100){
      sum=sum+i
      i+=2
    }
    println(s"sum=${sum}")
  }
}
案例4:求1/1+1/2+1/3+...1/100的和

示例代码如下:

object day15 {
  def main(args: Array[String]) = {
      var sum=0.0
      var i=1
      while(i<=100){
          sum=sum+1.0/i
          i+=1
   }
   println(s"sum=${sum}")
  }
}

while死循环

在需要一直执行的时候,就可以使用死循环,它能确保核心逻辑一直被调用中.

案例5:判断用户的输入的内容是否是闰年及退出判断。
import scala.util.control.Breaks.{break, breakable}

object day16 {
  def main(args: Array[String]) = {
      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("死循环结束,系统退出")
  }
}

do while 循环

格式:

do {
   statement(s);
} while( 条件 );

do wile 和while的区别

do while:无论条件是否成立,都会执行一次 示例代码如下:

 var a=100
    do{
      println(a)
      a+=1
    }while(a<=10)

while:如果条件不成立就不会执行 示例代码如下:

    var i=100
    while(i<=10){
      println(i)
      i+=1
    }
案例6:求1-1/2+1/3-1/4+1/5+...+1/19的和

代码如下:

 var sum=0.0
      var i=1
      while(i<=100){
        if(i%2==1){
          sum=sum+1.0/i
        }else{
          sum=sum-1.0/i
        }
        i+=1
      }
   println(s"sum=${sum}")