while 循环
- 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("循环结束")
- i:循环变量,控制循环执行次数的变量。一般这个变量名就设置为1。
- 它的起点不一定非要从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}")