目录
Scala也为for循环这一常见的控制结构提供了非常多的特性,这些for循环的特性被称为推导式或for表达式。
注意
//在Scala中对象的方法调用我们可以省略点,只要之间空一格就可以了
// 然后后面空一格再写参数,如果参数只有一个的话,括号也可以省略
范围遍历
基本语法
for( i <- 1 to 6 ) {
print(i + " " )
}
println()
说明:
(1)i 表示循环的变量,<- 规定to
(2)i 将会从1-6循环,前后闭合
案例实操
- package Chapter04
-
- object Test_02ForLoop {
- def main(args: Array[String]): Unit = {
-
- //for循环控制(to)
- for (i <- 1 to 9){
-
- println("第"+i+"句"+"中国我爱你")
-
- }
-
- //for(i <- 1.to(9)){
-
- //println("第"+i+"句我爱你中国")
-
- //}
-
-
- }
- }
运行结果
不包含边界的范围遍历
基本语法
for( i <- 1 until 3 ) {
print(i + " " )
}
println()
说明:
(1)这种方式和前面的区别在于 i 是从 1 到 3-1
(2)即使前闭合后开的范围
案例实操
- package Chapter04
-
- object Test_02ForLoop {
- def main(args: Array[String]): Unit = {
-
- //不包含边界的范围遍历
-
- for(i <- Range(1,10)){
-
- println(i+".Hello")
-
- }
-
- println("-----------")
-
- for(i <- 1 until 10){
-
- println(i+".Hello")
-
- }
-
- }
- }
运行结果
案例实操
- package Chapter04
-
- object Test_02ForLoop {
- def main(args: Array[String]): Unit = {
-
- //集合遍历
-
- for(i <- Array(2022, 520,1314)){
- println(i)
- }
-
- println("---")
-
- for(i <- List(2022, 520,1314)){
- println(i)
- }
-
- println("---")
-
- for(i <- Set(2022, 520,1314)){
- println(i)
- }
- }
- }
运行结果
基本语法
for( i <- 1 to 3 if i !=2) {
print(i + " " )
}
println()
说明:
(1)循环守卫,即循环保护式(也称条件判断式,守卫)。保护式为true则进入循环体内部,为false则跳过,类似于continue。
(2)上面的代码等价
for( i <- 1 to 3) {
if (i !=2 ){
print(i + " " )
}
}
案例实操
- package Chapter04
-
- object Test_02ForLoop {
- def main(args: Array[String]): Unit = {
-
- //循环守卫
-
- for(i<- 1 to 3 if i !=2 ){
-
- println("第"+i+"句"+".我爱你中国")
-
- }
-
- println("----")
-
- for(i<- 1 to 3) {
-
- if (i != 2) {
-
- println("第" + i + "句" + ".我爱你中国")
-
- }
- }
-
-
-
-
- }
- }
运行结果