循环守卫和循环步长
循环守卫
概念:也叫循环保护式、条件判断式。它就像是循环的“门卫” ,在每次循环迭代时检查条件。当条件为 true 时,才允许进入循环体执行相关操作;若为 false ,则跳过此次循环,类似 continue 语句的功能。
循环步长
概念:在 for 循环中, by 关键字用于指定循环变量的步长,即每次迭代时循环变量的增量。
嵌套循环
概念:指在一个循环体内又包含另一个或多个循环。外层循环的每次迭代,内层循环都会完整执行一轮。
引入变量
概念:在 for 推导式中可以引入新的变量,丰富循环中的逻辑计算和操作。
循环返回值
概念:在 for 循环中,使用 yield 关键字可将遍历过程中处理的结果收集到一个新集合(如 Vector )中。
倒序打印
概念:利用 reverse 关键字,可实现对一组数据的倒序输出。
for(i <- 1 to 10 reverse) { println(i) } ,将按10到1的顺序依次打印数字。
While和do..While循环控制
While 循环:先判断条件,条件为 true 才执行循环体。
do..While 循环(文档未详述,但和Java中用法类似 ):先执行一次循环体,再判断条件,条件为 true 继续执行循环体。
do..while循环控制
概念: do..while 循环先执行一次循环体,再判断循环条件。若条件为 true ,则继续执行循环体;若为 false ,则结束循环 。循环条件是返回布尔值的表达式
循环中断
概念:Scala为契合函数式编程风格,去除了 break 和 continue 关键字。推荐用函数式风格替代它们的功能,也可使用 breakable 控制结构实现类似功能 。
多重循环(嵌套循环 )
概念:把一个循环放在另一个循环体内就构成嵌套循环。 for 、 while 、 do while 都能作为外层或内层循环。一般建议用两层,最多不超三层,避免嵌套过深导致代码复杂难维护。若外层循环执行 m 次,内层循环执行 n 次,那么内层循环体总共执行 m * n 次 。
打印九九乘法表为例,代码 for (i <- 1 to 9) { for (j <- 1 to i) { print(j + "*" + i + "=" + (i * j) + "\t") } println() } 。外层循环变量 i 从1到9 ,控制乘法表的行数;对于外层循环的每一个 i 值,内层循环变量 j 从1到 i ,计算并打印 j 和 i 的乘法表达式及结果 ,内层循环结束后换行,最终完整输出九九乘法表 。