while循环的使用

77 阅读2分钟

1.while循环的格式与使用

while循环

循环就是重复执行多次。

wehil循环格式如下:
[while(condition) {]()// 满足条件就执行,如果条件一直满足,就一直执行。  
  statement(s)  
}

wehile循环练习:

object dfa06 {
  def main (args: Array [String]): Unit = {
    //while 循环(重复做)
    //i: 循环变量,控制循环执行次数的变量。一般这个变量名就设置为 i。
    // 它的起点不一定非要从 0 或者 1 开始

    // 目标:循环输出 1 ~ 100 奇数(1,3,5,7,9....99),每行一个
    var i = 1
    while (i <= 100) {
      if (i % 2 == 1) { // 奇数
        println (i)
      }
      i += 1
    }
  }
}

死循环

在需要一直执行的时候,就可以使用死循环

案例 不停地判断用户的输入的内容是否是闰年。

object dfa08 {
  def main (args: Array [String]): Unit = {
    //while 死循环
    // 目标:重复 判断用户输入的年份是否闰年
    while (true){
      print ("请输入你要判断的年份:")
      var year = scala.io.StdIn.readInt ()

      if(year%400 == 0 || (year%4==0 && year%100!=0 &&year%100!=0)){
        println(s"year 是闰年")
      } else {
        println(s"year 不是闰年 ")

      }
    }
  }
}

死循环是一个种非常使用的结果,它能确保核心逻辑一直被调用中。

2.do while 循环的格式与while循环的区别

1. while 循环

特点:循环体 可能一次都不执行(如果初始条件就 为 false)。

格式:先判断条件,再决定是否执行循环体。

2. do-while 循环

格式:先执行一次循环体,再判断条件。

特点:循环体 至少会执行一次(无论初始条件是否 为 true)。

案例:求数列的和

object Main {
	def main(args: Array[String]) = {
		var sum:Double = 0
		var i = 1
		while(i <= 19){
		    
		    if(i%2 == 1){
		       sum + 1.0 / i
		    } else{
		        sum-=1.0 / i
		    }
		    i += 1
		}
		println(s"sum=${sum}")
	}
}

案例:判断是否是素数

object Main {
	def main(args: Array[String]) = {
	    /**
	     * 
	     * 判断一个数num是不是素数
	     * 
	     */
	     var num = scala.io.StdIn.readInt()
	     var isPrime:Boolean = true
	     // 从 2 到 num-1,依次去除num, 如果有一个能整除,就说明它不是素数
	        var i = 2
	     while(i<=num -1){
	         // 如果能整除: num % i == 0,说明isPrime不是素数
	         i += 1
	     }
	     if(isPrime){
	         println(s"$num 是素数")
	     } else {
	         println(s"$num 不是素数")
	     }
	}
}

案例:题目描述:小球从100米高处自由落下,着地后又弹回高度的一半再次落下,如此重复。问经过多少次落地后,小球弹起的高度才会低于0.5米?

object Main {
  def main(args: Array[String]) = {
    var i = 0 // 落地的次数
    var high = 100.0 // 初始为100米
    while(high >= 0.5) {
      high = high / 2.0
      i += 1
      println(s"经过${i}次落地之后,小球的高度是${high}")
    }
    println(s"经过${i}次落地之后,小球的高度是${high},小于0.5米的")
  }
}

案例:题目描述:假设某人的年化投资回报率是10%。也就是说投入1元之后:

第一年结束时有1.1元,计算过程是:1 (1+10%) = 1.1 第二年结束时有1.21元,计算过程是:1.1(1+10%) = 1.21元, 第三年结束时有1.331元,计算过程是:1.21*(1+10%) = 1.331元

3.break的作用

结束,跳出循环

编码示范:

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