Scala入门系列(二):条件控制与循环
条件控制与循环
if表达式
- 定义:if表达式是有值的,就是if或者else中最后一行语句返回的值。
- 例如:val isAdult = if (age > 18) 1 else 0
- 类型推断:由于if表达式是有值的,而if和else子句的值类型可能不同,此时if表达式是什么类型呢?Scala会自动取两个类型的公共父类型。
- 如果if后没有跟else,则默认else的值是Unit,也用()表示,类似java中的void或者null。
- 写多行if语句:可以使用{}的方式,但推荐使用:paste和ctrl + D的方式。
终结符
默认情况下scala不需要终结符; 因为默认一行一句,但是如果你想在一行写多句,那么必须使用; 隔断,其次可以使用{}来进行块编码。
缩进
官方推荐代码缩进为2个空格,因为Scala代码很容易陷入很深的嵌套层级,如果有更多空格的话代码很容易就超出屏幕右边界。
循环
- while do:语义与java相同
- for:只有简易版for语句
- 例如:var n = 10; for(i <- 1 to n) println(i)
- 或者使用until,表示不达到上限: var n = 10; for(i <- 1 until n) println(i)
- 也可以对字符串进行遍历,类似java的增强for循环: for (c <- "hello World") print(c)
- 跳出循环语句
- 没有类似于java的break语句
- 但是可以使用bool、return或者Breaks的break函数来替代使用
import scala.util.control.Breaks._
breakable{
var n = 10
for(c <- "hello world"){
if(n == 5) break;
print(c)
n -=1
}
}
高级for循环
- 多重for循环:九九乘法表
for(i <- 1 to 9; j <- 1 to 9){
if(j==9){
println(i*j)
}else{
print(i*j + " ")
}
}
if守卫:for循环中可以添加if判断,例如:取偶数
- for (i <- 1 to 100 if i % 2 == 0) println(i)
for推导式:构造集合, 类似于python中的列表解析式
scala> var list = for(i<- 1 to 10) yield i
list: scala.collection.immutable.IndexedSeq[Int] = Vector(1, 2, 3, 4, 5, 6, 7, 8
, 9, 10)
Scala入门系列(二):条件控制与循环的更多相关文章
- C语言高速入门系列(二)
C语言高速入门系列(二) -----转载请注明出处coder-pig 本节引言: 在前面一节中我们对C语言进行了初步的了解,学会了使用IDE进行代码的编写,编译执行! 在这一节中我们会对C语言的基本的 ...
- C# 互操作性入门系列(二):使用平台调用调用Win32 函数
好文章搬用工模式启动ing ..... { 文章中已经包含了原文链接 就不再次粘贴了 言明 改文章是一个系列,但只收录了2篇,原因是 够用了 } --------------------------- ...
- [转]C# 互操作性入门系列(二):使用平台调用调用Win32 函数
传送门 C#互操作系列文章: C# 互操作性入门系列(一):C#中互操作性介绍 C# 互操作性入门系列(二):使用平台调用调用Win32 函数 C# 互操作性入门系列(三):平台调用中的数据封送处理 ...
- Shell学习(三)——Shell条件控制和循环语句
参考博客: [1]Shell脚本的条件控制和循环语句 一.条件控制语句 1.if语句 1.1语法格式: if [ expression ] then Statement(s) to be execut ...
- Python学习--04条件控制与循环结构
Python学习--04条件控制与循环结构 条件控制 在Python程序中,用if语句实现条件控制. 语法格式: if <条件判断1>: <执行1> elif <条件判断 ...
- Maven入门系列(二)--设置中央仓库的方法
原文地址:http://www.codeweblog.com/maven入门系列-二-设置中央仓库的方法/ Maven仓库放在我的文档里好吗?当然不好,重装一次电脑,意味着一切jar都要重新下载和发布 ...
- mybatis入门系列二之输入与输出参数
mybatis入门系列二之详解输入与输出参数 基础知识 mybatis规定mapp.xml中每一个SQL语句形式上只能有一个@parameterType和一个@resultType 1. 返回 ...
- Python - 条件控制、循环语句 - 第十二天
Python 条件控制.循环语句 end 关键字 关键字end可以用于将结果输出到同一行,或者在输出的末尾添加不同的字符,实例如下: Python 条件语句是通过一条或多条语句的执行结果(True 或 ...
- Shell脚本的条件控制和循环语句
条件判断:if语句 语法格式: if [ expression ] then Statement(s) to be executed if expression is true fi 注意:expre ...
随机推荐
- 2017-2018-1 20155313 《信息安全系统设计基础》 Myod
2017-2018-1 20155313 <信息安全系统设计基础> Myod Myod要求 1.复习c文件处理内容 2.编写myod.c 用myod XXX实现Linux下od -tx - ...
- switch...case 语句
var a = 6;switch(a){ case 1: alert("1111"); break; case 2: alert("2222"); ...
- Assert.notNull(sessionUser);
rg.springframework.util.Assert Assert翻译为中文为"断言".就是断定某一个实际的值就为自己预期想得到的,如果不一样就抛出异常.
- Bitcoin区块链攻击方式
目录 重放攻击-- 非人为攻击 其他攻击 重放攻击-- 非人为攻击 重放攻击 Replay Attach 攻击者重复发送相同的数据库包到目的主机,用以欺骗系统 用支付宝付款信息重复项商家索取商品 比特 ...
- Qt-网易云音乐界面实现-5 收藏列表,播放列表实现 QListWidget QTableWidget
先上目前完成的内容吧,发现后面越写越多.在看看点击量,心凉凉. 完成了左侧的导航列表,还有就是右下角的播放列表. //创建的歌单 my_Create_Music_List = new QListWid ...
- 关于dbw 与dbm 的计算
一分贝(dB)表示单元信号强度的相对差异.其比率的基础对数为10,,如dB = 10 x Log10 (P1/P2). 基础10对数规则: Log10 (AxB) = Log10(A) + Log10 ...
- SQL常见面试题
1.用一条SQL 语句 查询出每门课都大于80 分的学生姓名 name kecheng fenshu张三 语文 81张三 数学 75李四 语文 ...
- aws存储桶s3使用
关于aws s3的使用说明: aws官方文档地址:https://docs.aws.amazon.com/s3/index.html#lang/zh_cn 创建s3与基础使用: 1.登陆aws控制台- ...
- (1) Python 数据类型功能
1.int 将字符串转化为数字 a="123" print(type(a),a) b=int(a) print(type(b),b) num="0011" ...
- ubuntu HackRF One相关环境搭建
本文内容.开发板及配件仅限用于学校或科研院所开展科研实验! 淘宝店铺名称:开源SDR实验室 HackRF链接:https://item.taobao.com/item.htm?spm=a1z10.1- ...