for语句的基本格式;
- 基本格式如下:
for ( 循环变量 <- 数据集) {
// 循环体代码
}
例如1: 输出1 ~ 100。
//1. 输出1 ~ 100
for(i <- 1 to 100 ){
println(i)
}
例如2: 输出1 ~ 100 中的偶数。
for(i <- 1 to 100 ){
if(i % 2 ==0){
println(i)
}
}
for和while的区别;
-
for适用于明确地知道循环起点 和 终点。
-
while适用于不确定循环次数的情况。
循环守卫
-
可以在循环中添加条件,如果条件成立就执行循环。
-
格式如下:
for(循环变量 <- 起点to 终点; if (条件1); if (条件2) ...){
println(循环体)
}
循环步长
-
概念:每次循环之后,循环变量的自增数值。
-
格式:
for (循环变量 <- 起点 to 终点 by 步长) {
println (循环变量)
}
例如1:输出 1 ~ 100 中的奇数。
代码如下:
for(i <- 99 to 1 by -2){
println(i)
}
breakable +break
- 作用:提前结束循环。
breakable写在for循环内部。
例如1: 判断素数 。(只能被1 和它自己整除的数)
代码如下:
import scala.util.control.Breaks.{break, breakable}
// breakable +break:优化不是素数的情况 提前结束循环
// Math.sqrt(n):减少搜索的范围
val n= 97
// 假设他是素数
var isPrime = true
breakable{
for (i <- 2 to Math.sqrt(n).toInt){
if(n % i == 0) { //能整除 结束循环
isPrime = false
break
}
println(i)
}
}
if (isPrime){
println(s"${n}是素数")
} else{
println(s"${n}不是素数")
}
例如2:小球从100米高处自由落下,着地后又弹回高度的一半再次落下,如此重复。问经过多少次落地后,小球弹起的高度才会低于0.5米?
代码如下:
var h:Double = 100
var i = 0
while (h>=0.5){
i += 1
h = h * 0.5
}
println(i,h)