(一) for循环
1.如果循环变量的类型能被推断出来,是可以省略掉变量类型的。 2.这里的数据集可以是任意类型的数据集合,如字符串,集合,数组等等。
object base24 {
def main(args: Array[String]): Unit = {
/**
*
* for v.s. while
* 1.for 适用于明确知道循环起点和终点。
* 2.while
*
*
*/
for(i <- 1 to 100 )
if(i%2==0){
println(i)
}
}
}
(二)循环守卫
可以在循环中添加条件,如果条件成立就执行循环。这个叫循环守卫。
object base25 {
def main(args: Array[String]): Unit = {
/**
* 循环守卫
* 当后面的条件都满足的时候,才去执行循环体的内容
*
* 格式:
* 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)
}
}
}
(三)循环步长
[提问]:如何输出1 ~ 100 之间的奇数?
按1,3,5... 这个格式来输出,这就涉及到步长。
格式1:1 to 5 by 2
格式2:Range(1,5,2)
object base26 {
def main(args: Array[String]): Unit = {
/**
* 循环步长
* 每次循环之后,循环变量的自增数值
*
* 格式:
* for( 循环变量 <- 起点 to 终点 by 步长 ){
* println(环境变量)
* }
*/
// 输出1~100 中的奇数
for(i <- 1 to 100){
println(1)
}
}
}
(四)循环的返回值
[提问]:之前学习过if的返回值,大家还记得吗? 怎么用的?
for也可以获取到返回值,使用yield
(五)continue
在scala中是没有break和continue关键字的,如果一定要用,可以用scala.util.control包下的Breaks类的break
import scala.util.control.Breaks.{break, breakable}
object base27 {
def main(args: Array[String]): Unit = {
/**
* break跳出 整个for 循环
* 格式:
* breakable {
* for( 循环变量 <- 起点 to 终点) {
*
* break
* }
*
* }
*
*/
//
breakable {
for (i <- 1 to 100) {
// 如果遇到了第一个能整除9的数字就提前结束循环
if (i % 9 == 0) {
// 结束循环
break
}
println(i)
}
}
}
}