内建控制-循环语句while2

37 阅读1分钟

主要内容:

1. 案例1-求数列的和;

2. 案例2判断素数;

(一)案例-求数列的和

求数列的和:

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

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

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

从键盘上输入一个数,判断它是不是素数?

【引导大家分析】题目分析:

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
     // 从 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 不是素数")
     }
}
}