说明
1.如果循环变量的类型能被推断出来,是可以省略掉变量类型的。
2.这里的数据集可以是任意类型的数据集合,如字符串,集合,数组等等。
输出1 ~ 100
// 输出1 ~ 100
for(i <- 1 to 100){
println(i)
}
循环守卫
循环中添加条件,如果条件成立就执行循环。这个叫循环守卫。
循环步长
* 每次循环之后,循环变量的自增数值
*
* 格式:
* for( 循环变量 <- 起点 to 终点 by 步长 ) {
* println(循环变量)
* }
*
*/
// 输出1 ~ 100 中的奇数
for(i <- 99 to 1 by -2){
println(i)
}
break
/**
* break跳出 整个for 循环
* 格式:
* breakable {
* for( 循环变量 <- 起点 to 终点) {
*
* break
* }
* }
*
*/
//
breakable {
for (i <- 1 to 100) {
// 如果遇到了第一个能整除9的数字就提前结束循环
if (i % 9 == 0) {
// 结束循环
break
}
println(i)
}
}
// breakable + break: 优化不是素数的情况:提前结束循环
// Math.sqrt(n): 减少搜索范围
val n = 97
// 假设它是素数
var isPrime = true
breakable {
for (i <- 2 to Math.sprt(n).toInt) {
if (n % i == 0) { //能整除,结束循环
println(s"${i}能整除")
isPrime = false
break
}
println(i)
}
}
if(isPrime){
println(s"${n}是素数")
} else {
println(s"${n}不是素数")
}
}
}