前言

在开发中,经常需要使用到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差不多,但是输出结果中,其最大的那个值,不包含最大值本身

def main(args: Array[String]): Unit = {

for(i <- 1 until 10){println("hello :" + i)
}

}

方式3:直接通过for循环便利列表(集合)

当我们需要对集合中的数据进行遍历时,可以采用这种方式

def main(args: Array[String]): Unit = {

var list = List("1","hello",30)
for(item <- list){println(item)
}

}

for循环中的守卫

for循环守卫,也成为循环保护,即在某些情况下,需要对大范围内的数据进行进一步的过滤时,条件判断将会进一步缩小而触发内部的条件,从而执行循环体内部的逻辑,有点类似于continue功能,请看下面一个求1到10中偶数的代码

def main(args: Array[String]): Unit = {

  for(i <- 1 to 10 if i%2 == 0){println("偶数为:" + i)}

}

for循环中引入变量

我们来看下面这段代码

def main(args: Array[String]): Unit = {for(i <- 1 to 10){var j = 10-iprintln("j为:" + j)}}

当在for循环内部,还需要引入其他变量的时候,可以采用上面的写法,但是在scala中,提供了一种更加简介的写法,如下,

def main(args: Array[String]): Unit = {for(i <- 1 to 10 ; j = 10-i){println("j为:" + j)}}

通过这种方式,一步到位,节省了代码的同时,更加高效

for循环返回值

scala中对于for循环,基于关键字yield,可以对循环遍历过程中的值进行返回,返回的结果讲师一个Vector类型的集合

来看如下的代码:

def main(args: Array[String]): Unit = {var result = for(i <- 1 to 10 ) yield iprintln(result)}


可以这么理解,在for循环过程中的每一个值,即1~10中的每个元素,通过关键字yield之后,会返回出去,最终返回的结果为一个Vector封装起来给result变量

这种操作在实际开发中也是很有好处的,可以将2步的操作合并为一步走,直接返回,比如我们可以对yield后的i进行运算

def main(args: Array[String]): Unit = {var result = for(i <- 1 to 10 ) yield i * 2println(result)
}


通过这种方式,一步将遍历出来的每个元素进行了 *2 的操作

scala使用for循环相关推荐

  1. scala几种循环判断语句_Scala循环控制语句– while,while和for循环

    scala几种循环判断语句 In software programming, certain situations may arise where we need to execute a block ...

  2. scala学习手记2 - scala中的循环

    先来看一段Java中的循环: for (int i = 1; i < 4; i++) {System.out.print(i + ","); } 毫无疑问,scala可以让这 ...

  3. scala中break和continu 和 scala高级for循环

    美图欣赏: 一.背景 Scala里面竟然没有break和continue关键字,其实不是这样的,Scala里面推荐使用函数式的风格解决break和continue的功能,而不是一个关键字. 二.写个小 ...

  4. 2021年大数据常用语言Scala(八):基础语法学习 循环

    目录 循环 for表达式 while循环 循环 在scala中,可以使用for和while,但一般推荐使用for表达式,因为for表达式语法更简洁 for表达式 语法 for(i <- 表达式/ ...

  5. Scala for循环示例

    为什么80%的码农都做不了架构师?>>>    for循环是一种重复控制结构,允许你高效地编写需要执行特定次数的循环.下面的示例以各种形式描述了Scala中的for循环. 语法--带 ...

  6. Scala基础教程(四):if语句、循环语句、while语句

    下面是一个典型的决策中IF...ELSE结构的一般形式使用在大多数的编程语言中: if 语句: if 语句包含一个布尔表达式后跟一个或多个语句. 语法: 一个 if 语句的语法: if(Boolean ...

  7. Scala声明变量、常用类型、条件表达式、块表达式、循环

    一. Scala基础 1. 声明变量 package cn.toto.scala/*** Created by toto on 2017/6/27.*/ object VariableDemo {de ...

  8. Scala与Java差异(二)之条件控制与循环

    一.if表达式 (1)if表达式的定义 在Scala中,if表达式是有值的,就是if或者else中最后一行语句返回的值. 例如,val age = 30; if (age > 18) 1 els ...

  9. Scala中的while循环

    在Scala中的while循环 (while loop in Scala) while loop in Scala is used to run a block of code multiple nu ...

最新文章

  1. 从jQuery的缓存到事件监听
  2. 一文读懂支持向量机SVM(附实现代码、公式)
  3. Shell---判断(if)和分支(case)
  4. golang多核的使用
  5. Winform中跨窗体设置ZedGraph的属性并刷新曲线图
  6. c语言数码管显示1234,各位大神,如何用C语言实现在数码管上实现1234同时亮
  7. ubuntu 安装nvidia 驱动后无法进入桌面(循环进入登录界面 )
  8. 使用 ftrace 调试 Linux 内核,第 1 部分【转】
  9. java工程师中兴面试题
  10. 2、网站重构之本地映射外网域名
  11. Scratch 游戏项目学习法 —— 接苹果(十)接住苹果
  12. 批量删除QQ空间说说代码
  13. 美国阿肯色州闪电彩虹共享一片天空(组图)
  14. Arduino基础2
  15. Proguard的Keep使用方法
  16. 用Python删除含有特定字符串的行
  17. 小程序 和 web 功能对比_小程序官方推出的Kbone,是如何解决Web 端和小程序同构痛点的?...
  18. 干货!任务型对话中的知识管理
  19. python应用——分治法实现循环赛
  20. 打车日记 - 光头师傅

热门文章

  1. 2022年注册会计师(CPA)考试测试题及答案
  2. 2019电大计算机专业英语1答案,2019年秋电大开放英语1形成性考核册答案,最..._公共英语考试_帮考网...
  3. 利用会议软件进行高效会议管理的四大优势
  4. 网络 || icmp协议 || 三层交换机
  5. MicroStrategy 微策略 2022 招聘
  6. Carsim转向系统配置
  7. SAP S4HANA F-02报错:更正统一日记账分类账的定制设置
  8. 【报告分享】2021-2022中国男女婚恋观报告-百合世纪佳缘(附下载)
  9. “网易云阅读”-移动架构
  10. android开发工程师的发展前景怎么样