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

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

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

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

    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) + " ")
    }
1
2
3
4
5
6
7
  结果如下:

    3.使用until进行遍历,这个方法也是可以拿到索引的,代码如下:

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

    4.使用indices进行遍历,使用indices方法进行遍历更加简洁,同样也是可以拿到索引的,代码如下:

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

    5.for循环嵌套的使用,代码如下:

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

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

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


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


飞天小老头
关注

1


6

0

专栏目录
Scala循环遍历for详解
weixin_45264992的博客
 1769
Scala循环遍历for 1、范围遍历 //i无需提前定义,这里<-理解为左箭头,0-10的数依次指向并赋值给i //这里的to是一个方法,也可以写成i<-0.to(10) //注意,Scala中所有数据都是对象 for(i <- 0 to 10){ println(i) } //输出结果是1-10 //俩个输出结果不包含右边界,但包含左边界 for(i<-Range(0,10)){ println(i) } for
scala map/list/array/的常用内置遍历操作总结
残缺的歌的专栏
 1万+
scala map/list/array/的常用内置遍历操作总结。Scala 是面向函数的,所以在集合函数里,它很轻易地提供了非常丰富遍历操作,数组变换操作。这对于我们数据挖掘,爬虫,文本处理等都非常有帮助。有了这些内置的遍历变换操作,我们再也不用像java那样写一个笨笨的for循环来迭代,然后还要定义一些规范的函数来迎合需求。而scala不同,随时随地就可以写一个你自己想要的函数,而不需要严格地定义它,规范它。(注意,scala里一切事物皆函数,一切函数皆对象) 下面将提供一些集合内置遍历方法用法,熟练
Scala语法(一)_scala 多重for循环
9-10
跟java相比,scala中任何数据都是对象 scala中存在很多增强数据类型的类,增加了对象的方法 scala中不存在自增,自减,三目运算符 字符串增值操作 var src =“hellow ${name}” var name =“world” println(src) 3.循环 最常用的是for循环 1.遍历(range范围,字符串,数组) val arr = Array(“a”,“b”,“...
Scala基本语法(四)_args.head()
9-22
scala>importscala.math._//_ ===> *scala>min(1,2)//以下三种操作效果一样scala>1.toString//方法scala>1.toString()//方法形式scala>1toString//运算符方式//applyscala>"hello".apply(1)//等价于xxx.apply()scala>"hello"(1)//和上面的效果一样,相当于取出索引为1的字符,即e//条件表达式,scala的...
Scala编程详解 第9讲-Scala编程详解:数组操作之Array、ArrayBuffer以及遍历数组 共7页.pptx
11-25
【课程大纲】 第1讲-Spark的前世今生 共12页 第2讲-课程介绍、特色与价值 共13页 第3讲-Scala编程详解:基础语法 共8页 第4讲-Scala编程详解:条件控制与循环 共7页 第5讲-Scala编程详解:函数入门 共5页 第6讲-Scala编程详解:函数入门之默认参数和带名参数 共5页 第7讲-Scala编程详解:函数入门之变长参数 共4页 第8讲-Scala编程详解:函数入门之过程、lazy值和异常 共5页 第9讲-Scala编程详解:数组操作之Array、ArrayBuffer以及遍历数组 共7页 第10讲-Scala编程详解:数组操作之数组转换 共5页 第11讲-Scala编程详解:Map与Tuple 共8页 第12讲-Scala编程详解:面向对象编程之类 共12页 第13讲-Scala编程详解:面向对象编程之对象 共9页 第14讲-Scala编程详解:面向对象编程之继承 共13页 第15讲-Scala编程详解:面向对象编程之Trait 共14页 第16讲-Scala编程详解:函数式编程 共14页 第17讲-Scala编程详解:函数式编程之集合操作 共9页 第18讲-Scala编程详解:模式匹配 共11页 第19讲-Scala编程详解:类型参数 共13页 第20讲-Scala编程详解:隐式转换与隐式参数 共9页 第21讲-Scala编程详解:Actor入门 共8页
scala使用for循环
congge_study的博客
 8239
​前言 在开发中,经常需要使用到for循环对程序做处理,尤其是for循环,使用的地方很多,scala提供了多种方式用于操作for循环,下面列举几种常用的方式 方式1:to 这种方式最简单,只需要指定to的前后的数据范围即可 def main(args: Array[String]): Unit = { for(i <- 1 to 10){ println("hello :" + i) } } 输出结果: 方式2:until to 这种方式和to差不多,但是输
Scala:字符串_scala string 转 char
9-22
Scala:字符串 http://blog.csdn.net/pipisorry/article/details/52902348 Scala字符串 在Scala中,字符串的类型实际上是 Java String,它本身没有 String 类。 在Scala 中,String 是一个不可变的对象,所以该对象不可被修改。这就意味着你如果修改字符串就会产生一个新的字符串对象。但其他对象,如数组就是可变的...
1_scala_字符串操作_scala中trim
9-15
1_scala_字符串操作 //stringcompare val s1="Hello"val s2="h"+"ello"println("'"+s1+"' equal to "+"'"+s2+"' is "+(s1==s2)) println(s1.toUpperCase==s2.toUpperCase) println()//multilinestringval foo="""This is a multiline...
js数组方法大全,遍历数组方法every(),filter(),forEach(),map(),some()使用方法
qq_43305958的博客
 656
数组方法大全总结 数组方法 concat() 连接两个或更多的数组,并返回结果。 copyWithin() 从数组的指定位置拷贝元素到数组的另一个指定位置中。 entries() 返回数组的可迭代对象。 every() 检测数值元素的每个元素是否都符合条件。 fill() 使用一个固定值来填充数组。 filter() 检测数值元素,并返回符合条件所有元素的数组。 find() 返回符合传入测试(函数)条件的数组元素。 findIndex() 返回符合传入测试(函数)条件的数组元素索引。 forEach()
scala循环遍历
热门推荐
bingo_liu的博客
 2万+
for 循环遍历 scala循环遍历 foreach
Scala语言双重for循环实现打印九九乘法表_用scala语言的for循环打印9...
9-22
Scala语言双重for循环实现打印九九乘法表 一、代码如下 for(i<-1 to 9;j<-1 to i){ print(j+"*"+i+"="+j*i+" ") if(j==i) println() }
Scala语言基础_使用scala编写函数过滤文本中的回文单词
9-11
Scala也是一门函数式语言 二、Scala基础 2.1.1 基本数据类型 1 Scala的数据类型包括:Byte、Char、Short、Int、Long、Float、Double和Boolean(注意首字母大写) 和Java不同的是,在Scala中,这些类型都是“类”,并且都是包scala的成员,比如,Int的全名是scala.Int。对于字符串,Scala用java.lang.String类来表示字符串 ...
【Scala笔记——道】Scala 循环遍历 for详解
weixin_34061482的博客
 1390
Scala for循环 基本使用 增强型for循环 scala基本for循环如下,代码将names遍历并打印包含的名字。 val names = Seq("Kitty", "Tom", "Luke", "Kit") for (name <- names) { println(name) } 相较Java,语法层面来看只是将...
Scala学习(1)——for循环
一只行走在闹市的猪
 828
//to 前后都包含 //until和range只包含前,不包含后 //循环表达式 println("--------------循环表达式-------------") val arr = 1 to 9 println(s"to表达式:${arr.toString()}") val arr1 = 1 until 9 println...
Scala快速入门_scala接收控制台输入参数
9-9
val hello = """Hello \n \t \b \\ Scala""" //如果需要原样输出字符串中的内容,则用三个双引号"""将字符串包裹起来 var bool = true *val 相当于Java中的final关键字修饰的变量,一旦赋值便不能更改 *当未指定类型时,Scala会根据实际类型进行类型推断,上面前三种方式结果相同 ...
Scala中的循环
CatherineHuangTT的博客
 916
一、for循环 package day1 object For { def main(args: Array[String]): Unit = { //for循环语法结构:for (i <- 表达式/数组/集合) for(i <- 表达式),表达式1 to 10返回一个Range(区间),每次循环将区间中的一个值赋给i for (i <- 1 to 5)
scala for循环
最新发布
04-15
这个例子中,for循环遍历了一个字符串列表,并打印出每个元素。 4. 嵌套for循环: ``` for (i ; j ) { println(s"i: $i, j: $j") } ``` 这个例子中,使用了两个变量i和j进行嵌套循环,打印出所有可能的组合...
scala中arraybuffer循环
06-03
循环遍历`ArrayBuffer`有多种方式,其中最常见的是使用`for`循环或者`foreach`方法。以下是两种简单的方法: 1. 使用`for`循环遍历`ArrayBuffer`: ```scala import scala.collection.mutable.ArrayBuffer val ...
scala的遍历
weixin_33794672的博客
 126
2019独角兽企业重金招聘Python工程师标准>>> ...
scala遍历数组
m0_58535137的博客
 466
object 遍历数组 { def main(args: Array[String]): Unit = { val arr = Array(1, 2, 3, 4, 5) /** * for循环 */ // to:包左包右 for (i <- 0 to arr.length - 1) print(arr(i) + " ") println() println("-" * 20) // until:包左不包右
Scala之 函数式编程二*
张俊杰 的博客
 324
文字有点多 文字有点多,放一起会很卡,所以分开放了. 可变参数 有参数输出Array类型,如果没有参数就输出List类型的 def test(s: String*): Unit = { println(s) } test() test("params1") test("params1", "params2") 输出 List() ArraySeq(params1) ArraySeq(params1, params2) 如果参数列表中存在多个参数,那
Scala数组的遍历(入门案例)
『大数据墨鱼』的博客
 1039
数组的遍历 一、定义一个整型数组,打印出所有元素、求数组总和、求最大值 代码如下: object S_06_数组遍历 { def main(args: Array[String]): Unit = { val myArr = Array(1.9, 2.9, 3.4, 3.5) for (x <- myArr) { //打印所有元素 print(x + " ") } println("") var total = 0.0 // 
————————————————

                            版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
                        
原文链接:https://blog.csdn.net/AnameJL/article/details/113059147

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值