2021年大数据常用语言Scala(八):基础语法学习 循环
目录
循环
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(八):基础语法学习 循环相关推荐
- 2021年大数据常用语言Scala(四):基础语法学习 声明变量
目录 声明变量 语法格式 在解释器中定义一个变量 val和var变量 使用类型推断来定义变量 惰性赋值 声明变量 我们将来每一天编写scala程序都会定义变量.那scala语言如何定义变量呢? 语法格 ...
- 2021年大数据常用语言Scala(三十一):scala面向对象 特质(trait)
目录 特质(trait) 作为接口使用 定义具体的方法 定义具体方法和抽象方法 定义具体的字段和抽象的字段 实例对象混入trait trait调用链 trait的构造机制 trait继承class 特 ...
- 2021年大数据常用语言Scala(十四):基础语法学习 数组 重点掌握
目录 数组 重点掌握 定长数组 变长数组 遍历数组 数组常用算法 数组 重点掌握 scala中数组的概念是和Java类似,可以用数组来存放一组数据.scala中,有两种数组,一种是定长数组,另一种 ...
- 2021年大数据常用语言Scala(一):Scala简介
目录 一.Scala简介 为什么使用scala Scala对比Java 案例 一.Scala简介 scala是运行在JVM上的多范式编程语言,同时支持面向对象和面向函数编程 多范式:就是包含多种编程思 ...
- 2021年大数据常用语言Scala(三十八):scala高级用法 隐式转换和隐式参数
目录 隐式转换和隐式参数 隐式转换 自动导入隐式转换方法 隐式转换的时机 隐式参数 隐式转换和隐式参数 隐式转换和隐式参数是scala非常有特色的功能,也是Java等其他编程语言没有的功能.我们可以很 ...
- 2021年大数据常用语言Scala(二十八):scala面向对象 MAVEN依赖和类
目录 scala面向对象 MAVEN依赖 类 - 掌握 创建类和对象 - 掌握 getter/setter - 了解 类的构造器 - 掌握 scala面向对象 MAVEN依赖 <?xml ver ...
- 2021年大数据常用语言Scala(十八):基础语法学习 Map对象
目录 Map对象 不可变Map 可变Map Map基本操作 Map对象 Map可以称之为映射.它是由键值对组成的集合.在scala中,Map也分为不可变Map和可变Map. 不可变Map 定义 语法 ...
- 2021年大数据常用语言Scala(十六):基础语法学习 列表 List 重点掌握
目录 列表 List 重点掌握 不可变列表定义 可变列表 列表常用操作 列表 List 重点掌握 列表是scala中最重要的.也是最常用的数据结构.List具备以下性质: 可以保存重复的值 有先后顺序 ...
- 2021年大数据常用语言Scala(三十六):scala高级用法 泛型
目录 泛型 定义一个泛型方法 定义一个泛型类 上下界 协变.逆变.非变 非变 协变 逆变 泛型 scala和Java一样,类和特质.方法都可以支持泛型.我们在学习集合的时候,一般都会涉及到泛型. sc ...
最新文章
- 慎重选型:PG还是MySQL?Uber的案例不能作为参考!
- 【转】SQL 语句执行顺序
- linux 常用命令 杂记
- const参数,const返回值与const函数
- 互联网java面试_互联网java面试宝典
- 在Debian64环境下源码安装newLisp v10.6.0
- cdr你的产品已禁用_Coreldraw提示已安装另一版本导致安装失败的解决办法
- 20172329《程序设计与数据结构》实验一:线性结构实验报告
- 首份《敏捷回顾年度报告》发布
- python时间序列库_python Pandas库基础分析之时间序列的处理详解
- 【CUDA编程】nsight compute和nsight system的使用
- dvi接口引脚定义_DVI、D系列端子插口针脚定义
- php-fpm配置 listen,php-fpm – 配置详解
- 临沂最美乡村医生彭玉梅:救人遇车祸身亡
- 计算机思维在化工方面的应用,化工类院校计算机基础教学中计算思维的培养
- c++实现的阻塞队列
- AI那么牛,你离失业还有多远?
- 听说你觉得自己上了大学就长大懂事了...
- springboot整合jwt
- Netty框架之编解码机制一(ByteBuf以及Tcp粘包拆包)
热门文章
- 2021年中国服装行业分析报告-产业规模现状与发展规划趋势
- GPT3后可考虑的方向-知识推理与决策任务及多模态的信息处理
- LeetCode简单题之分割平衡字符串
- LeetCode简单题之数组元素积的符号
- TensorFlow多元线性回归实现
- CVPR2020论文解析:视频语义检索
- 2021年大数据常用语言Scala(二十六):函数式编程 分组 groupBy
- Python 列表List 的使用
- Android 如何防止用户同时点击多个控件问题
- Could not download lint-gradle.jar (com.android.tools.lint:lint-gradle:26.4.