15_循环结构_for

for循环控制
* 语法
* 1.to 范围数据循环 [x,y]
* for (i <- 1 to 3){
* printf("%d \n")
* }
* 2.until 范围数据循环 [x,y)
* for (i <- 1 until 3){
* printf("%d \n")
* }
* 3.循环守卫(循环保卫式、条件判断式) 保护式为true则进入循环内部,为false时,跳过
* for (i <- 1 to 3 if i != 2){
* printf("%d \n")
* }
* 等价于
* for (i <- 1 to 3 ) {
* if (i != 2)
* printf("%d \n", i)
* }
* 执行顺序 : 获取变量 -> 条件判断 -> true:进入循环体 false:不执行循环体
* 4.by 循环步长
* for (i <- 1 to 10 by 2){
* printf("%d \n")
* }
* 5.循环嵌套
* for (i <- 1 to 3 ; j <- 1 to 4){
* printf("%d - j \n")
* }
* 6.引入变量
* for (i <- 1 to 3 ; j = i * 2){
* printf("%d - j \n")
* }
* 约定 :
* 当for推导式 只有一个表达式式,常用()
* 当有多个表达式时 常用{} 代替 ()
* 等价于
* for {
* i <- 1 to 3
* j = i * 2}
* {
* printf("%d - j \n")
* }
* 等价于
* for (i <- 1 to 3){
* var j = j = i * 2
* printf("%d - j \n")
* }
* 7.yield for循环的返回值 存储到 Vector
* var id = for (i <- 1 to 3) yield {
* i *2
* var k = 9
* k
* }
* 注意事项 : Vector存储的值为 {} 最后一行的值
* 8.reverse 倒序循环
* for (i <- 1 to 3 reverse){
* printf("%d \n")
* }
* 注意事项 : 必须导包 import scala.language.postfixOps
* */
代码示例
复制代码
/**
  * @author gaocun
  * @create 2021-10-17 5:22 PM */
object 循环结构_for_03 {
  /*  for循环控制
  *   语法
  *      1.to 范围数据循环 [x,y]
  *         for (i <- 1 to 3){
  *             printf("%d \n")
  *         }
  *      2.until 范围数据循环 [x,y)
  *         for (i <- 1 until 3){
  *             printf("%d \n")
  *         }
  *      3.循环守卫(循环保卫式、条件判断式) 保护式为true则进入循环内部,为false时,跳过
  *         for (i <- 1 to 3 if i != 2){
  *             printf("%d \n")
  *         }
  *         等价于
  *           for (i <- 1 to 3 ) {
  *             if (i != 2)
  *               printf("%d \n", i)
  *           }
  *         执行顺序 : 获取变量 -> 条件判断 -> true:进入循环体 false:不执行循环体
  *      4.by 循环步长
  *         for (i <- 1 to 10 by 2){
  *             printf("%d \n")
  *         }
  *      5.循环嵌套
  *         for (i <- 1 to 3 ; j <- 1 to 4){
  *             printf("%d - j \n")
  *         }
  *      6.引入变量
  *         for (i <- 1 to 3 ; j = i * 2){
  *             printf("%d - j \n")
  *         }
  *      约定 :
  *         当for推导式 只有一个表达式式,常用()
  *         当有多个表达式时 常用{} 代替 ()
  *      等价于
  *         for {
  *             i <- 1 to 3
  *             j = i * 2}
  *         {
  *             printf("%d - j \n")
  *         }
  *      等价于
  *         for (i <- 1 to 3){
  *             var j = j = i * 2
  *             printf("%d - j \n")
  *         }
  *     7.yield for循环的返回值 存储到 Vector
  *     var id = for (i <- 1 to 3) yield {
  *         i *2
  *         var k = 9
  *         k
  *     }
  *     注意事项 : Vector存储的值为 {} 最后一行的值
  *     8.reverse 倒序循环
  *         for (i <- 1 to 3 reverse){
  *             printf("%d \n")
  *         }
  *     注意事项 : 必须导包 import scala.language.postfixOps
  * */
  def main(args: Array[String]): Unit = {
    //  1.to 范围数据循环 [x,y]
    for (i <- 1 to 3) {
      printf("%d \n", i)
    }

    //  2.until 范围数据循环 [x,y)
    for (i <- 1 until 3) {
      printf("%d \n", i)
    }

    //   3.循环守卫(循环保卫式、条件判断式) 保护式为true则进入循环内部,为false时,跳过
    for (i <- 1 to 3 if i != 2) {
      printf("%d \n", i)
    }

    for (i <- 1 to 3) {
      if (i != 2)
        printf("%d \n", i)
    }

    //   4.by 循环步长
    for (i <- 1 to 10 by 2) {
      printf("%d \n", i)
    }

    // 5.循环嵌套
    for (i <- 1 to 3; j <- 1 to 4) {
      printf("%d - %d \n", i, j)
    }

    // 6.引入变量
    for (i <- 1 to 3; j = i * 2) {
      printf("%d - %d \n", i, j)
    }

    for {
      i <- 1 to 3
      j = i * 2
    } {
      printf("%d - %d \n", i, j)
    }

    for (i <- 1 to 3) {
      var j = i * 2
      printf("%d - %d \n", i, j)
    }

    //  7.yield 循环返回值 存储到 Vector
    var id = for (i <- 1 to 3) yield {
      i * 2
      var k = 9
      k
    }
    print(id)
    print("\n")

    //  8.reverse 倒序循环
    import scala.language.postfixOps
    for (i <- 1 to 3 reverse) {
      printf("%d \n", i)
    }

  }


}
复制代码

 

 
posted @   学而不思则罔!  阅读(64)  评论(0编辑  收藏  举报
编辑推荐:
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界
点击右上角即可分享
微信分享提示