while语句的基本使用

27 阅读2分钟

while语句的基本使用

前面的课程我们学习了while语句的基本使用,接下来,我们会通过几道经典的练习题来巩固它的使用。

    案例1-求数列的和

一.题目描述:求数列的和

求s= 1 - 1/2 + 1/3 - 1/4  + 1/5 .... +1/19的值。

案例分析:

1.while 循环执行的区间是1 - 20

2.求和项需要注意符号

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

(二)案例2-判断是否素数

二.题目描述:写一段代码,它不断接受用户的输入的数字,并输出其绝对值。如果你输入的是0,就结束这个程序。

案例分析:

1. 实现核心的求绝对值的功能。

2. 把功能放在while死循环中。

3. 在合适的时候使用break跳出死循环。

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}")
	}
}

(三)案例3-判断是否素数

三.题目描述:从键盘上输入一个数,判断它是不是素数?

题目分析:

1. 只能被1和它本身整除的数是素数。2 3 5 7 11 13 17 19...

2. 可以从2开始到n-1为止,依次去除这个数n,如果能被除,就不是素数。

3. 设置一个变量,初始值为true,表示它是一个素数,在循环内部,如果有整除的情况,就把它设置为false。

4. 循环结束之后,检查变量的值,看看是不是素数。

object Main {
	def main(args: Array[String]) = {
	    var num=scala.io.StdIn.readInt()
	    
	    var isPrime:Boolean=true
	    
	    var i=2
	    
	    while(i<=num -1){
	        if(num%i==0){
	            isPrime=false
	        }
	        
	        i+=1
	        
	    }
	    if(isPrime){
	        println(s"$num 是素数")
	    }else{
	       println(s"$num 不是素数") 
	    }
		
	}
}

(四)案例4

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

题目分析:

1. 循环执行的条件是>=0.5。

2. 在循环体内增加计数器。

23循环结束之后,输出计数器的值。

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

(五)案例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元,

编写程序:

1、求它第10年结束时有多少元?

2、多少年之后能超过1000元?

object Main {
	def main(args: Array[String]) = {
	    var i=0
	    var money=1.0
	    while(i<=10){
	        money=money*1.1
	        i+=1
	        println(s"$i 年之后,有 $money 元")
	    }
		println(s"i 年之后,总的钱变成了 $money")
	}
}
object Main {
	def main(args: Array[String]) = {
	    var i=0
	    var money=1.0
	    while(money<1000){
	        money=money*1.1
	        i+=1
	        println(s"$i 年之后,有 $money 元")
	    }
		println(s"i 年之后,总的钱变成了 $money")
	}
}

3.复试公式

object Main {
	def main(args: Array[String]) = {
	    var i=0
	    var money=1.0
	    while(i<1000){
	    ///while(i<37){
	        money=money*1.1
	        i+=1
	        println(s"$i 年之后, $money 元")
	    }
		println(s"$i 年之后,总的钱变成了 $money")
	}
}