scala中for循环遍历的多种方式

本文详细介绍了Scala编程中for循环的六种用法,包括基本遍历、带索引遍历、until与indices技巧,以及嵌套循环和yield的应用实例,帮助读者掌握遍历的不同场景。

    在scala编程中for循环是我们经常使用的遍历方式,下面我就将for循环使用的几种方式给大家介绍一下。

    1.直接进行遍历,但是这种方式是拿不到下标的,代码如下,关于语法的解析我在注释中写明了。

 // 这里我们定义了一个字符串
    var str = "abcdefg"
    /*语法解析:
    * 其实这个和java的增强for循环是一样的,s就是一个局部变量,str就是我们要遍历的字符串
    * "<-"就是将遍历的每个字符都赋值给s*/
    for (s <- str){
      println(s + " ")
    }

  结果如下:
在这里插入图片描述
    2.使用"0 to arr.length - 1"的方式进行遍历,这种方式是可以拿到索引的,代码如下:

   // 定义一个数组
    var arr = Array(1,2,3,4,5,6)
    /*这里0就是指索引的位置,后面的arr.length-1就是索引的最大位置,因为索引是从0开始的
    * 索引最大值肯定是要比数组长度小1的*/
    for (i <- 0 to arr.length -1){
      print(arr(i) + " ")
    }

  结果如下:
在这里插入图片描述
    3.使用until进行遍历,这个方法也是可以拿到索引的,代码如下:

    /*使用until就不需要使用数组的长度-1了,使用until就是含头不含尾的,这个使用起来就更加
    * 便捷了*/
    for( i <- 0 until arr.length){
      print(arr(i) + " ")
    }

  结果如下:
在这里插入图片描述
    4.使用indices进行遍历,使用indices方法进行遍历更加简洁,同样也是可以拿到索引的,代码如下:

  /*这个indices方法其实取的就是数组的索引,本质上是一样的,就是使用起来更加便捷*/
    for (j <- arr.indices){
      print(arr(j) + " ")
    }

  结果如下:
在这里插入图片描述
    5.for循环嵌套的使用,代码如下:

    /*下面这个语句中,分号前面的就是第一层for循环,分号后面的就是第二层for循环,在写for
    * 循环的时候后面是可以直接跟上一个if语句的*/
    for (i <- 0 to 3;j <- 0 to 3 if i != j){
      println("第"+(i + 1) + "次循环结果:" + (i+j))
    }

  结果如下:
在这里插入图片描述
    6.在for循环中使用yield,我们知道yield在java中是在线程中使用的,用来控制优先级,但是在scala中是不一样的,下面已经在代码的注释中解释了yield的意思,代码如下:

   /*在下面的代码中,使用yield之后,就会返回一个数组,因为遍历的就是一个数组,返回什么类型
   * 取决于前面遍历的是什么类型,如果是数组就会将计算结果添加到一个新的数组中,如果遍历的是
   * 集合那么就会将计算结果添加到一个新的集合当中,yield的起到的是一个推断的作用*/
    var arr2 = for (i <- arr) yield {i * 10}
    for (k <- arr2.indices){
      print(arr2(k) + " ")
    }

  结果如下:
在这里插入图片描述

以上就是在scala中使用for循环遍历的几种方式,希望对大家有帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值