内容如下:
1. for语句的基本格式;
2. for和while的区别;
3. continue语句。
(一)for循环
for ( 循环变量 <- 数据集) {
// 循环体代码
}
1.如果循环变量的类型能被推断出来,是可以省略掉变量类型的。
2.这里的数据集可以是任意类型的数据集合,如字符串,集合,数组等等。
var array = 1 to 5 // 1,2,3,4,5
var array2 = 1 until 5 // 1,2,3,4
for (i <- array){
println(i)
}
val fruits = List("apple","banana","origane","strawberry")
for(fruit <- fruits){
println("fruit is " + fruit)
}
(二)循环守卫
可以在循环中添加条件,如果条件成立就执行循环。这个叫循环守卫。
for(循环变量 <- 数据集 if condition1; if condition2 ...){
循环体
}
for(i <- 1 to 10; if(i%2==0)){println(i)}
(三)循环步长
按1,3,5... 这个格式来输出,这就涉及到步长。
格式1:1 to 5 by 2
[编码示范]
for(i <- 1 to 100 by 2 ){
println(i)
}
(四)循环的返回值
for也可以获取到返回值,使用yield
[编码讲解]
val ret = for(i <- 1 to 3) yield { i*2 }
println(ret)
println(ret(1))
(五)continue
在scala中是没有break和continue关键字的,如果一定要用,可以用scala.util.control包下的Breaks类的break
import scala.util.control.Breaks._
object MainFor {
def main(args: Array[String]): Unit = {
for(i <- 1 to 10){
breakable {
if(i%3 == 0){
// continue
break
}
println(i)
}
}
}
}
将breakable写在for循环内部,就是continue!