循环守卫
循环守卫的概念,通过足球守门员的比喻,说明了循环守卫的作用是控制循环的执行。具体实现是通过在for循环中添加if判断语句,如果条件不满足则跳出循环。
循环步长在for循环中设置步长,默认步长为1,可以通过指定步长来改变循环的取值间隔。例如,设置步长为2时,循环变量会每次增加2。基本语法for (i <- 1 to 10 by 2) { println("i=" + i)}说明:by 表示步长示例如下:需求:输出 1 到 10 以内的所有奇数
引入变量
基本语法for(i <- 1 to 3; j = 4 - i) { println("i=" + i + " j=" + j)}for 推导式一行中有多个表达式时,所以要加 ; 来隔断逻辑for 推导式有一个不成文的约定:当 for 推导式仅包含单一表达式时使用圆括号, 当包含多个表达式时,一般每行一个表达式,并用花括号代替圆括号,如下
循环返回值
通过for循环返回一个集合。使用yield关键字可以在循环中逐个返回值,最终形成一个包含所有返回值的集合。基本语法val res = for(i <- 1 to 10) yield iprintln(res)
倒序打印
使用reverse关键字实现倒序打印。通过在for循环中添加reverse关键字,可以实现数据的倒序输出。说明:如果想倒序打印一组数据,可以用 reverse。示例如下:需求:倒序打印 10 到 1
循环中断
在scholar中没有break和continue关键字,推荐使用函数式编程风格来实现循环中断。通过抛出异常或调用特定函数可以实现循环的中断。
多重循环与多分支选择
scholar中没有switch关键字,多分支选择可以通过函数式编程的方式来实现。1)基本说明(1)将 一 个 循 环 放 在 另 一 个 循 环 体 内 , 就 形 成 了 嵌 套 循 环 。 其 中 ,for,while,do…while均可以作为外层循环和内层循环。【建议一般使用两层,最多不要 超过 3 层】(2)设外层循环次数为m 次,内层为 n 次,则内层循环体实际上需要执行 m*n 次。示例如下:鸡兔同笼问题