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 ...
随机推荐
- [转载]在Windows下为PHP5.6安装redis扩展和memcached扩展
一.php安装redis扩展 1.使用phpinfo()函数查看PHP的版本信息,这会决定扩展文件版本 2.根据PHP版本号,编译器版本号和CPU架构, 选择php_redis-2.2 ...
- 【日常训练】数据中心(CSP 201812-4)
分析 题目实际上是在要在给定的边上构建出一个树,使得这个树的最长边尽可能小. 这实际上是最小生成树的性质(反证法).问题从而得到解决. 代码 /* * Code name => csp20181 ...
- Linux(centos7)之更换安装python3(二)
Linux不比window好安装python,折腾了好久,终于成功安装上了python,window上一个安装包完事,可惜Linux上python版本太低不好使,还要更换为3版本,百度了好久,教程上总 ...
- Windows下Redis安装及使用
1.下载安装Redis(安装直接下一步就行,此步骤省略) Redis-x64-3.2.100.exe 2.Redis使用 安装目录如下: ①cmd启动redis: ②将redis安装为服务 此时如果安 ...
- MergeSort 归并排序(java)
MergeSort 归并排序 排序思想:1,分解待排序的n个元素为两个子列,各为n/2个元素 2,若子列没有排好序,重复1步骤,每个子列继续分解为两个子列,直至被分解的子列个数为1 3,子列元素个数为 ...
- spring cloud 入门系列:总结
从我第一次接触Spring Cloud到现在已经有3个多月了,当时是在博客园里面注册了账号,并且看到很多文章都在谈论微服务,因此我就去了解了下,最终决定开始学习Spring Cloud.我在一款阅读A ...
- SDN学习笔记
SDN 什么是SDN SDN是一种框架和思想,核心诉求是通过软件控制网络,实现业务的自动化部署,为方便软件来控制网络,希望控制面和转发面是分离的. 例如,传统的交换机内部,由交换机负责具体的网络流量往 ...
- 2、Ansible在使用过程中出现的错误解决方法
1.安装完成后允许命令出错 Traceback (most recent call last): File "/usr/bin/ansible", line 197, in (ru ...
- final发布视频展示博客
Part One [探路者]选题展示视频链接: http://v.youku.com/v_show/id_XMzIxMDM2MTQ1Ng==.html?spm=a2h3j.8428770.341605 ...
- BugPhobia开发篇章:绩效管理的层次优化
0x00 :用0x00去书写一段故事 If you weeped for the missing sunset, you would miss all the shining stars 绩效管理,恐 ...