for循环
// 1.输出1——100
for(i <- 1 to 100){
println(i)
}
// var i = 1
// while(i <= 100){
// println(i)
// i += 1
// }
循环守卫
/**
* 循环守卫
* 当后面的条件都满足时,才去执行循环体的内容
*
* 格式:
* for(循环变量 <- 起点 终点; if(条件1); if(条件2); ... if(条件3); ){
*
* printf(循环变量);
* }
*
*/
// 输出1-100中能同时被2、3、4整除的数
for(i <- 1 to 100; if(i%2 == 0); if(i%3 == 0); if(i%4 == 0)){
println(i)
}
循环步长
/**
* 循环步长
* 每次循环之后,循环变量的自增数值
*
* 格式:
* for(循环变量 <- 起点 to 终点 by 步长 ){
*
* printf(循环变量);
* }
*
*/
// 输出1-100中的奇数
for(i <- 99 to 1 by -2){
println(i)
}
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.sqrt(n).toInt) {
if (n%i == 0) { // 能整除,结束循环
println(s"${i}能整除")
isPrime = false
break
}
println(i)
}
}
if (isPrime) {
println(s"${n}是素数")
} else {
println(s"${n}不是素数")
}