一、for循环
格式:
for (循环变量 <- 起点 to 终点;if(条件1);if(条件2);...if(条件3);){
println(循环变量)
}
示例:
for(i <- 1 to 100) {
println(i)
}
二、循环守卫
可以在循环中添加条件,如果条件成立就执行循环。这个叫循环守卫。
格式:
for(循环变量 <- 数据集 if condition1; if condition2 ...){]()
循环体
}
示例:
// 打印1 - 10 内的偶数
for (i <- 1 to 10; if (i % 2 == 0)) {
println(i)
}
三、循环步长
如何输出1 ~ 100 之间的奇数?
按1,3,5... 这个格式来输出,这就涉及到步长。
格式1:1 to 5 by 2
格式2:Range(1,5,2)
编码如下:
// 输出1~100中的奇数
for(i <- 99 to 1 by -2) {
println(i)
}
四、判断素数
素数:只能被1和它本身整除的数。
eg: 2,3,5,7,11,13,17,19...97
思路:用 2 ~ (n-1) 依次去除这个数,如果能整除就说明不是素数。
例如:
n = 9
- 2 不能整除
- 3 能整除(不是素数)
n = 35
- 2 不能整除
- 3 不能整除
- 4 不能整除
- 5 能整除(不是素数)
代码如下:
val n = 97
// 假设它是素数
var isPrime = true
breakable {
for (i <- 2 to n - 1) {
if (n % i == 0) { // 能整除
isPrime = false
break
}
println(i)
}
}
if(isPrime){
println(s"${n}是素数")
} else {
println(s"${n}不是素数")
}
代码需要导入:(如何导入在上一篇文章中有教)
五、小球弹跳
弹跳小球:
- 小球从 100 米高出自由落下,着地后有弹回高度的一半再次落下,如此重复。
- 问:
- 经过多少次落地后,小球弹起的高度才会低于 0.5 米?
var h:Double = 100
var i = 0
while(h>=0.5){
i += 1
h = h * 0.5
}
println(i, h)
}