目录

循环

for表达式

while循环


循环

在scala中,可以使用for和while,但一般推荐使用for表达式,因为for表达式语法更简洁

for表达式

语法

for(i <- 表达式/数组/集合) {
    // 表达式
}

就是类似java中的 比如 for(String str: strings){ xxx...}, 从一个数组/集合/或者表达式中迭代取元素

简单循环

使用for表达式打印1-10的数字

步骤

生成1-10的数字(提示:使用to方法)

使用for表达式遍历,打印每个数字

参考代码1

scala> val nums = 1.to(10)    // 万物皆对象, 1 也可以看成是一个对象 to就是这个对象的方法
nums: scala.collection.immutable.Range.Inclusive = Range(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) scala> for(i <- nums) println(i)     

简写方式

参考代码2

// 中缀调用法
scala> for(i <- 1 to 10) println(i)

嵌套循环

使用for表达式,打印以下字符

*****
*****
*****

步骤

使用for表达式打印3行,5列星星

每打印5个星星,换行

参考代码

for(i <- 1 to 3; j <- 1 to 5) {print("*");if(j == 5) println("")}

守卫

for表达式中,可以添加if判断语句,这个if判断就称之为守卫。我们可以使用守卫让for表达式更简洁。

语法

for(i <- 表达式/数组/集合 if 表达式) {
    // 表达式
}

示例

使用for表达式打印1-10之间能够整除3的数字

参考代码

// 添加守卫,打印能够整除3的数字
for(i <- 1 to 10 if i % 3 == 0) println(i)

for推导式

  • 将来可以使用for推导式生成一个新的集合(一组数据)
  • 在for循环体中,可以使用yield表达式构建出一个集合,我们把使用yield的for表达式称之为推导式

示例

生成一个10、20、30...100的集合

参考代码

// for推导式:for表达式中以yield开始,该for表达式会构建出一个集合
val v = for(i <- 1 to 10) yield i * 10

while循环

scala中while循环和Java中是一致的

示例

打印1-10的数字

参考代码

scala> var i = 1
i: Int = 1scala> while(i <= 10) {| println(i)| i = i+1| }

2021年大数据常用语言Scala(八):基础语法学习 循环相关推荐

  1. 2021年大数据常用语言Scala(四):基础语法学习 声明变量

    目录 声明变量 语法格式 在解释器中定义一个变量 val和var变量 使用类型推断来定义变量 惰性赋值 声明变量 我们将来每一天编写scala程序都会定义变量.那scala语言如何定义变量呢? 语法格 ...

  2. 2021年大数据常用语言Scala(三十一):scala面向对象 特质(trait)

    目录 特质(trait) 作为接口使用 定义具体的方法 定义具体方法和抽象方法 定义具体的字段和抽象的字段 实例对象混入trait trait调用链 trait的构造机制 trait继承class 特 ...

  3. 2021年大数据常用语言Scala(十四):基础语法学习 数组  重点掌握

    目录 数组  重点掌握 定长数组 变长数组 遍历数组 数组常用算法 数组  重点掌握 scala中数组的概念是和Java类似,可以用数组来存放一组数据.scala中,有两种数组,一种是定长数组,另一种 ...

  4. 2021年大数据常用语言Scala(一):Scala简介

    目录 一.Scala简介 为什么使用scala Scala对比Java 案例 一.Scala简介 scala是运行在JVM上的多范式编程语言,同时支持面向对象和面向函数编程 多范式:就是包含多种编程思 ...

  5. 2021年大数据常用语言Scala(三十八):scala高级用法 隐式转换和隐式参数

    目录 隐式转换和隐式参数 隐式转换 自动导入隐式转换方法 隐式转换的时机 隐式参数 隐式转换和隐式参数 隐式转换和隐式参数是scala非常有特色的功能,也是Java等其他编程语言没有的功能.我们可以很 ...

  6. 2021年大数据常用语言Scala(二十八):scala面向对象 MAVEN依赖和类

    目录 scala面向对象 MAVEN依赖 类 - 掌握 创建类和对象 - 掌握 getter/setter - 了解 类的构造器 - 掌握 scala面向对象 MAVEN依赖 <?xml ver ...

  7. 2021年大数据常用语言Scala(十八):基础语法学习 Map对象

    目录 Map对象 不可变Map 可变Map Map基本操作 Map对象 Map可以称之为映射.它是由键值对组成的集合.在scala中,Map也分为不可变Map和可变Map. 不可变Map 定义 语法 ...

  8. 2021年大数据常用语言Scala(十六):基础语法学习 列表 List 重点掌握

    目录 列表 List 重点掌握 不可变列表定义 可变列表 列表常用操作 列表 List 重点掌握 列表是scala中最重要的.也是最常用的数据结构.List具备以下性质: 可以保存重复的值 有先后顺序 ...

  9. 2021年大数据常用语言Scala(三十六):scala高级用法 泛型

    目录 泛型 定义一个泛型方法 定义一个泛型类 上下界 协变.逆变.非变 非变 协变 逆变 泛型 scala和Java一样,类和特质.方法都可以支持泛型.我们在学习集合的时候,一般都会涉及到泛型. sc ...

最新文章

  1. 慎重选型:PG还是MySQL?Uber的案例不能作为参考!
  2. 【转】SQL 语句执行顺序
  3. linux 常用命令 杂记
  4. const参数,const返回值与const函数
  5. 互联网java面试_互联网java面试宝典
  6. 在Debian64环境下源码安装newLisp v10.6.0
  7. cdr你的产品已禁用_Coreldraw提示已安装另一版本导致安装失败的解决办法
  8. 20172329《程序设计与数据结构》实验一:线性结构实验报告
  9. 首份《敏捷回顾年度报告》发布
  10. python时间序列库_python Pandas库基础分析之时间序列的处理详解
  11. 【CUDA编程】nsight compute和nsight system的使用
  12. dvi接口引脚定义_DVI、D系列端子插口针脚定义
  13. php-fpm配置 listen,php-fpm – 配置详解
  14. 临沂最美乡村医生彭玉梅:救人遇车祸身亡
  15. 计算机思维在化工方面的应用,化工类院校计算机基础教学中计算思维的培养
  16. c++实现的阻塞队列
  17. AI那么牛,你离失业还有多远?
  18. 听说你觉得自己上了大学就长大懂事了...
  19. springboot整合jwt
  20. Netty框架之编解码机制一(ByteBuf以及Tcp粘包拆包)

热门文章

  1. 2021年中国服装行业分析报告-产业规模现状与发展规划趋势
  2. GPT3后可考虑的方向-知识推理与决策任务及多模态的信息处理
  3. LeetCode简单题之分割平衡字符串
  4. LeetCode简单题之数组元素积的符号
  5. TensorFlow多元线性回归实现
  6. CVPR2020论文解析:视频语义检索
  7. 2021年大数据常用语言Scala(二十六):函数式编程 分组 groupBy
  8. Python 列表List 的使用
  9. Android 如何防止用户同时点击多个控件问题
  10. Could not download lint-gradle.jar (com.android.tools.lint:lint-gradle:26.4.