for循环:
格式
for ( 循环变量 <- 数据集) {
// 循环体代码
}
示例代码: 输出1~100
for(i<-1 to 100){
println(i)
}
循环守卫
当后面的条件都满足的时候,才会去执行循环体的内容
格式:
for(循环变量<- 起点 to 终点;if(条件1);if(条件2);...if)
println(循环变量)
示例代码: 输出1~100中的能整除2,3,4的数字
for(i<-1 to 100;if(i%2==0);if(i%3==0);if(i%4==0)) {
println(i)
}
循环步长
每次循环之后,循环变量的自增数值
格式:
scala
for(循环变量<- 起点 to 终点 by 步长)
println(循环变量)
示例代码: 输出1~100中的奇数
for(i<- 99 to 1 by -2){
println(i)
}
breakable,break
判断素数 示例代码如下:
import scala.util.control.Breaks.{break, breakable}
object day22 {
def main(args: Array[String]): Unit = {
//breakable+break:优化不是素数的情况:提前结束循环
//Math.sqrt(n):减少搜索的范围
val n=35
//假设它是素数
var isPrime=true
breakable {
for (i <- 2 to Math.sqrt(n).toInt) {
if (n % i == 0) { //能整除,结束循环
println(s"${n}能整除")
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)