为什么80%的码农都做不了架构师?>>>   

for循环是一种重复控制结构,允许你高效地编写需要执行特定次数的循环。下面的示例以各种形式描述了Scala中的for循环。

语法——带范围的for循环(for loop with ranges)

在Scala里,最简单的带范围的for循环语法如下:

for( var x <- Range ){statement(s);
}

以上语法中,Range是一个以i to j或者i until j表示的数值范围,左箭头操作符<-称作生成器,因为它从一个范围内生成单独的值。

以下是用Scala实现的for循环的示例。

示例1:i to j

object Demo {def main(args: Array[String]) {var a = 0;// for loop execution with a rangefor( a <- 1 to 10){println( "Value of a: " + a );}}
}

输出:

value of a: 1
value of a: 2
value of a: 3
value of a: 4
value of a: 5
value of a: 6
value of a: 7
value of a: 8
value of a: 9
value of a: 10

示例2:i util j

object Demo {def main(args: Array[String]) {var a = 0;// for loop execution with a rangefor( a <- 1 until 10){println( "Value of a: " + a );}}
}

输出:

value of a: 1
value of a: 2
value of a: 3
value of a: 4
value of a: 5
value of a: 6
value of a: 7
value of a: 8
value of a: 9

示例3:用分号(;)分隔多个范围

你可以在for循环中使用分号(;)分隔多个范围,在这种情况下,循环将遍历给定范围的所有逻辑。下面是一个只使用两个范围的例子,你也可以使用两个以上的范围:

object Demo {def main(args: Array[String]) {var a = 0;var b = 0;// for loop execution with a rangefor( a <- 1 to 3; b <- 1 to 3){println( "Value of a: " + a );println( "Value of b: " + b );}}
}

输出:

Value of a: 1
Value of b: 1
Value of a: 1
Value of b: 2
Value of a: 1
Value of b: 3
Value of a: 2
Value of b: 1
Value of a: 2
Value of b: 2
Value of a: 2
Value of b: 3
Value of a: 3
Value of b: 1
Value of a: 3
Value of b: 2
Value of a: 3
Value of b: 3

示例4:for循环集合

以下是for循环集合的语法:

for( var x <- List ){statement(s);
}

在这里,List变量是一个包含元素列表的集合类型,for循环遍历所有元素,每次返回x变量中的一个元素。示例如下:

object Demo {def main(args: Array[String]) {var a = 0;val numList = List(1,2,3,4,5,6);// for loop execution with a collectionfor( a <- numList ){println( "Value of a: " + a );}}
}

输出:

object Demo {def main(args: Array[String]) {var a = 0;val numList = List(1,2,3,4,5,6);// for loop execution with a collectionfor( a <- numList ){println( "Value of a: " + a );}}
}

示例5:带过滤条件的for循环

Scala的for循环允许用一个或多个if语句过滤出符合条件的元素,以下是语法,可以用分号(;)分隔多个过滤条件:

for( var x <- Listif condition1; if condition2...){statement(s);
}

示例如下:

object Demo {def main(args: Array[String]) {var a = 0;val numList = List(1,2,3,4,5,6,7,8,9,10);// for loop execution with multiple filtersfor( a <- numListif a != 3; if a < 8 ){println( "Value of a: " + a );}}
}

输出:

object Demo {def main(args: Array[String]) {var a = 0;val numList = List(1,2,3,4,5,6,7,8,9,10);// for loop execution with multiple filtersfor( a <- numListif a != 3; if a < 8 ){println( "Value of a: " + a );}}
}

示例6: 带yield关键字的for循环

你可以将for循环中的返回值存储在变量中,也可以通过函数返回。为此,你可以在for表达式的主体前面加上关键字yield。下面是语法:

var retVal = for{ var x <- Listif condition1; if condition2...
}
yield x

注意:大括号用于保存变量和条件,retVal是一个变量,其中x的所有值都将以集合的形式存储。

示例:

object Demo {def main(args: Array[String]) {var a = 0;val numList = List(1,2,3,4,5,6,7,8,9,10);// for loop execution with a yieldvar retVal = for{ a <- numList if a != 3; if a < 8 }yield a// Now print returned values using another loop.for( a <- retVal){println( "Value of a: " + a );}}
}

输出:

value of a: 1
value of a: 2
value of a: 4
value of a: 5
value of a: 6
value of a: 7

编译自:Scala - for Loops

转载于:https://my.oschina.net/dabird/blog/3009787

Scala for循环示例相关推荐

  1. scala中循环守卫_Scala中的循环

    scala中循环守卫 Scala中的循环 (Loops in Scala) In programming, many times a condition comes when we need to e ...

  2. PHP快速入门教程:WHILE循环示例

    <html>                                                                                         ...

  3. python冒泡循环示例_Python for循环示例

    python冒泡循环示例 Python for loop is used for iterating over a sequence. The for loop is present in almos ...

  4. python冒泡循环示例_Python循环示例–循环在python中

    python冒泡循环示例 In this tutorial you are going to learn about Python Loop Techniques. In previous tutor ...

  5. bboss 动态sql使用foreach循环示例

    本文介绍bboss 动态sql使用foreach循环示例.切入正题. 在sql配置文件中配置的sql语句有时需要用到foreach循环控制语句以及循环计数器velocityCount,以便遍历外部传入 ...

  6. 九层妖塔SCALA单层循环实现

    Scala一层循环九层妖塔 欢迎点赞收藏 代码实现 欢迎点赞收藏 代码实现 for ( i <- 1 to 9 by 1 ; j = 2 * i - 1 ; k = 9 - i ) {print ...

  7. scala中断循环代码示例

    实例 import scala.util.control._object Test {def main(args: Array[String]) {var a = 0;val numList = Li ...

  8. scala语言示例_var关键字与Scala中的示例

    scala语言示例 Scala var关键字 (Scala var keyword) The var Keyword in scala is used to declare variables. As ...

  9. scala while循环中断

    Scala内置控制结构特地去掉了break和continue,是为了更好的适应函数化编程,推荐使用函数式的风格解决break和contine的功能,而不是一个关键字. 如何实现continue的效果 ...

最新文章

  1. 读书笔记:《Aspx开发200问》——如何实现Repeater控件的分页
  2. python easy install 编译_python安装easy_install和pip
  3. C# 数据库连接池 线程安全 单例模式 的实现
  4. CUDA bank 及bank conflict
  5. 使用Office 365 试用账户 体验Office 365功能
  6. Control-Flow Enforcement Technology (CET)
  7. Vim 经常使用快捷键及键盘图
  8. Linux 内核版本号查看
  9. 饿了么ui 省市区 三级联动框架
  10. 加不了buff的BuffX,还能让年轻人买单多久?
  11. oracle 挖掘日志,使用Oracle的Logminer工具进行日志挖掘
  12. 053试题 - 320/321/322/323/324/326/330/332/544/553/585/586/587/588/589/592/596/597/598/599 rman backup
  13. 使用ajax报405错误
  14. Linux软件安装失败问题,source.list用了bionic,实际上我的Linux是focal版本
  15. Excel学习之旅(三)
  16. ACL2019代码开源论文
  17. 除尘机器人毕业_【干货】焊接机器人除尘方式
  18. 在局域网访问 XAMPP 服务器本地主机
  19. “杏”运有你!共赏这乡美景
  20. 2023十大网络安全认证,有任何一个都薪资过万,你有几个了?

热门文章

  1. 《响应式Web设计:HTML5和CSS3实践指南》——2.9节基于位置伪类的交替行样式
  2. [转] android自动化之MonkeyRunner测试环境配置(一)
  3. MySQL管理与优化(20):MySQL日志
  4. Ajax弹出式无刷新城市选择特效
  5. REDHAT6.4桌面环境添加快捷建打开命令行终端
  6. CC1100E被不同频段的频率干扰问题
  7. 字符串常量是一个字符数组
  8. Spring boot(五)模板引擎 Thymeleaf
  9. JavaScript检测之basevalidate.js
  10. sendmail启动virtusertable.db错误解决