scala:内建控制-循环语句while

42 阅读2分钟

while 循环

  1. while循环就是重复执行多次。

随堂练习

例1:



    var i=0
    while (i<2){
      println(s"${i},I miss you!")
      i+=1
    }
      println("循环结束")


while 死循环

1.在编程中,while 死循环是指条件永远为 true 的循环,它会一直执行下去,除非在循环内部通过某种方式(如 break 语句)手动终止。 例2:


   var i=0
    while (i<=3000){
      println(s"${i},I miss you")
      i+=1


    }
    println("循环结束")
  1. i:循环变量,控制循环执行次数的变量。一般这个变量名就设置为1。
  2. 它的起点不一定非要从0或者1开始

例3.循环输出1-100奇数,每行一个:

var i=1
while (i<=100  ) { //奇数
  if (i % 2 == 1) {
    println(i)
  }

  i += 1


}

例4.求1-100的和:

object basic10 {
  def main(args: Array[String]): Unit = {

    // while 循环(重复版)
    // i:循环变量,控制循环执行次数的变量。一般这个变量名就设置为1
    //  它的起点不一定非要从0或者1开始
    // 循环输出1-100奇数,每行一个
    // 目标:1+2+3+......+100
    var sum=0
    var i=1
    while (i<=100){
      sum=sum+i
      i+=1
    }
    println(s"sum=$sum")




  }
}

例5.

object Main {
	def main(args: Array[String]) = {
	    var sum:Double=0  //sum=0   sum默认是Int
	    var i=1
	    while(i<=19){
	       
	        // 如果i默认是奇数是-
	       if(i%2==1){
	           sum+=1.0/i
	       }else{
	       sum-=1.0/i
	        //否则,就是+
	       }
	       i+=1 
	        
	        
	    }
		println(s"sum=${sum}")
	}
}

例6.

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,则num不是素数
      if (num % i == 0) {
        isPrime = false // 不是素数
      }
      i += 1
    }
    if (isPrime) {
      println(s"$num 是素数")
    } else {
      println(s"$num 不是素数")
    }
  }
}

例7.(小球落地高度与次数)

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

例8.

(1)

object Main {
	def main(args: Array[String]) = {
	    var i=0
	    var money=1.0
	    while(money<=1000){
	        // 每一年的钱都在后一年的基础上增加10%=====乘以1.1
	        money=money*1.1
	        i+=1
	       
	    }
		println(s"$i 年之后,总金额超过1000元")
	}
}

(2)

object Main { def main(args: Array[String]) = {
var i=0
var money=1.0
while(i<10){
// 每一年的钱都在后一年的基础上增加10%=====乘以1.1
money=money*1.1
i+=1
println(s"$i 年之后,有$money 元") 
} 
println(s"10年之后,总的钱变成了:$money") 
}
}

例子:1.判断输入的年份是否为闰年

while(true){
  print("请你输入要判断的年份:")
  var year=scala.io.StdIn.readInt()

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

2. 算1-1/2+1/3-1/4+....+1/19的结果

//1-1/2+1/3-1/4+....+1/19
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}")