一、for循环的学习
for 与 while循环的区别
for:适用于明确的知道循环起点和终点
格式:for(循环变量 <- 起点 to 终点)
while:适用于不确定循环次数的情况下
例题:输出1~100
def main(args: Array[String]): Unit = {
// for循环学习
/*
for v.s. while
1. for 适用于明确的知道循环起点 和 终点
2. while 适用于不确定循环次数的情况下
*/
// 输出1~100
for(i <- 1 to 100){
println(i)
}
// var i = 1
// while(i <= 100){
// println(i)
}
二、循环守卫
循环守卫:当后面的条件都满足的时候,才去执行循环的内容
格式:for(循环变量 <- 起点 to 终点;if(条件1); if(条件2);...if(条件3)){ println(循环变量) }
例题:
def main(args: Array[String]): Unit = {
// 循环守卫
// 当后面的条件都满足时候。才去执行循环的内容
// for循环格式:for(循环变量 <- 起点 to 终点; if(条件1); if(条件2;...if(条件3)){
// 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)
}
}
三、循环步长
循环步长:每次循环之前,循环变量的自增数值
格式:for(循环变量 <- 起点 to 终点 by 步长){ println(循环变量) } 例题:
def main(args: Array[String]): Unit = {
// 循环步长
// 每次循环之前,循环变量的自增数值
// 格式:x
// for(循环变量 <- 起点 to 终点 by 步长){
// println(循环变量)
// }
// 输出1~100中的奇数
for(i <- 99 to 1 by -2){
println(i)
}
/*
var i = 1
while(i <= 100){
println(i)
i += 2
}
*/
}
四、break 跳出 for循环
格式: breakable{ for(循环变量 <- 起点 to 终点 by 步长){ println(i) break } }
例题:
def main(args: Array[String]): Unit = {
/*
break 跳出 for循环
格式:
breakable{
for(循环变量 <- 起点 to 终点 by 步长){
println(i)
break
}
}
*/
breakable {
for (i <- 1 to 100){
// 如果遇到了第一个能整除9的数字就提前结束循环
if (i % 9 == 0){
// 结束循环
break
}
println(i)
}
}
}
例题:判断素数
def main(args: Array[String]): Unit = {
/**
* 判断素数
* 素数:只能被1 和 它自己整除的数。
* eg:2,3,5,7,11,13,17....97
*
* 思路:用2 ~ (n-1) 依次去除这个数,如果能整除就说明不是素数
* 例如:
* n = 9
* 1.2 不能整除
* 2.3 能整除(不是素数)
*
* n = 35
* 1.2 不能整除
* 2.3 不能整除
* 3.4 不能整除
* 4.5 能整除(不是素数)
*/
val n = 35
// 假设它是素数
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}不是素数")
}
}