前言

在开发中,经常需要使用到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. 微软新作,ImageBERT虽好,千万级数据集才是亮点
  2. 转: Linux下使用java -jar运行可执行jar包的正确方式
  3. CentOS tcpdump的使用实例
  4. 基于python实现opencv视频去抖动
  5. tomcat线程循环异常终止_腾讯面试官:如何停止一个正在运行的线程?我一脸蒙蔽。。。...
  6. Java入门算法(排序篇)丨蓄力计划
  7. 信息安全的技术研究相关站点
  8. 【假期重磅福利】更新三个Oracle系列课程,共153课时,最低免费获取
  9. 手把手教你用Java实现一个简易联网坦克对战小游戏
  10. 计算机组装的理论知识,计算机组装基本知识点.ppt
  11. 推荐: 一个业务流程梳理工具Sam
  12. Spring配置实现AOP
  13. dpkg 被中断,您必须手工运行 sudo dpkg -configure -a 解决
  14. phpmyadmin scriptssetup.php 反序列化漏洞(WooYun-2016-199433)
  15. 远程重启h3c路由器_H3C路由器简单命令
  16. (63)计数器设计(递增计数器)
  17. 微信屏蔽网址解决办法 如何恢复微信访问拦截 微信网页拦截怎么办
  18. 第一行代码-第二版(郭霖著)笔记(初识Android)
  19. 【oracle报错】ORA-28000
  20. 基于Go语言GoFrame+Vue+ElementUI实现的权限控制系统

热门文章

  1. arcgis标注只显示部分_ArcGIS标注小技巧
  2. 【83期分享】4款产品发布PPT模板免费下载
  3. Unity3D开发之控制摄像机移动
  4. CESM2:基本框架
  5. 1号店登录页(共5页)
  6. 反常积分的性质与收敛判别
  7. 一款新颖简捷的“中英文朗读软件”
  8. php 鸟哥链家,链家“鸟哥”告诉您技术人员应如何保持进步
  9. 支持javascript的ppt软件_适用于Mac的6种最佳幻灯片制作软件
  10. TCP相关技术:重发机制