/*
*
*for v.s. while
*1.for 适用于明确地知道循环起点 和 终点。
*2.while 适用于不确定循环次数的情况
*/
//1. 输出1 ~ 100
for(i <-1 to 100 ){
print(i)
/*
*循环守卫
* 当后面的条件都满足的时候,才去执行循环体的内容
*
* 格式:
* for( 循环变量 <- 起点 to 起点—);if(条件1);if(条件2);......if(条件3){
* print (循环变量)
* }
*
*/
// 输出1 - 100 中的能被整除的 2,3,4 的数字
for(i <- 1 to 100;if(i%2 ==0);if(i%3 == 0);if(i%4 == 0))
/**
* 循环步长
* 每次循环之后,循环变量的自增数值
*
* 格式:
* for( 循环变量 <- 起点 to 终点 by 步长) {
* println(循环变量)
* }
*/
// 输出1 ~ 100 中的奇数
for(i <- 99 to 1 by -2){
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}不是素数")