scala流程控制
1、分支控制if-else
分支控制有三种:单分支、双分支、多分支;
1.1 单分支
(1)、语法入下:
if(条件表达式){
执行代码块 //当条件表达式为true时,才会执行代码块内容
}
1.2 双分支
语法入下:
if(条件表达式){
执行代码块 //当条件表达式为true时,才会执行代码块内容
}else{
执行代码块 //当条件表达式为false时,才会执行代码块内容
}
1.3 多分支
语法入下:
if( 条件表达式1 ){
执行代码块1 //当条件表达式1 为true时,才会执行代码块1 内容
}else if( 条件表达式2 ){
执行代码块2 //当条件表达式2 为true时,才会执行代码块2 内容
}else if( 条件表达式3 ){
执行代码块3 //当条件表达式3 为true时,才会执行代码块3 内容
}else{
执行代码块4 //当条件表达式为false时,才会执行代码块4 内容
}
1.4 分支语句的返回值
val result : Unit = if(条件表达式){
执行代码块 //当条件表达式为true时,才会执行代码块内容
}else{
执行代码块 //当条件表达式为false时,才会执行代码块内容
} //结果返回() ;实际是返回代码块最后一行
实现java中的三元运算符:(关系表达式) ? 表达式1:表达式2;
scala实现:val res = if( age>18 ) "成年" else "未成年" ;
2、for循环
2.1 范围遍历
for (i <- 1 to 10){ // 底层就是对象的方法调用,相当于 for (i <- 1.to(10)) [1,10]
println(i + "次遍历") //从1到10 循环遍历
}
--------------------------------------------------------------
for (i <- 1 until 10){ // [1,10) ,也可以用 for (i <- rang(1,10) )
println(i + "次遍历") //从1到9 循环遍历
}
2.2 集合遍历
for (i <- Array(1,10,12) ){ //for (i <- Set(1,10,12,33) ) for (i <- List(1,12,33) )
println(i + "次遍历") //输出的结果为: 1次遍历 10次遍历 12次遍历
}
2.3 循环守卫(循环过滤)
Scala 可以在for循环中 使用一个或多个 if 语句来过滤一些元素
for (a <- 1 to 10 if a != 2 ; if a < 4){
println(a + "次循环") //输出的结果为 : 1次循环 3次循环
}
2.4 循环步长
注意:step 不能为0;可以为小数,但是不推荐用,可能会造成精度缺失;
2.5 倒序遍历
2.6 嵌套循环
例如:实现九九乘法表
嵌套循环的格式也可以用一下的方式:
2.7 引入变量
九层妖塔Scala单层循环实现:
2.8 for循环返回值
默认是空,即();个人理解是 因为关系表达式的值一致在变,返回值不确定是哪一个;
val ints = for (a <- 1 to 5) yield a
//使用关键字 yield ,把变量相关的值放入集合中进行返回;用于对集合中的元素进行计算处理
3、while循环
while 和do......while的使用和java语言中完全相同
3.1 while的用法
循环变量的初始化
while(循环条件)
{
循环体statement(s);
循环变量迭代;
}
3.2 do......while的用法
do {
循环体statement(s);
循环变量迭代;
} while(循环条件);
例如:
4、循环中断
scala内置控制结构特地去掉了break和continue,是为了更好的适应函数式编程。推荐使用函数式的风格解决break和continue的功能,而不是一个关键字。scala中使用breakable控制结构来实现break和continue的功能。
代码简化方式如下:
scala流程控制的更多相关文章
- Scala深入浅出实战经典-----002Scala函数定义、流程控制、异常处理入门实战
002-Scala函数定义.流程控制.异常处理入门实战 Scala函数定义 语句结束无分号 定义无参函数 def 函数名称(参数名称:参数类型)[:Unit=]{ 函数体 } 老师的代码 我的实际代码 ...
- 4. Scala程序流程控制
4.1 程序流程控制说明 在程序中,程序运行的流程控制决定程序是如何执行的,是我们必须掌握的,主要有三大流程控制语句,顺序控制,粉质控制,循环控制 温馨提示:Scala语言中控制结构和Java语言中的 ...
- Scala(一):函数、流程控制、参数
Function:函数函数的定义: def 函数名(参数):返回类型=函数实现体 eg:def abs(x:Long) : Long = if(x >= 0) x else -x 你必须给出所有 ...
- [原创]Scala学习:流程控制,异常处理
1.流程控制 1)do..while def doWhile(){ var line="" do{ line = readLine() println("readline ...
- Day1 Python基础学习——概述、基本数据类型、流程控制
一.Python基础学习 一.编程语言分类 1.简介 机器语言:站在计算机的角度,说计算机能听懂的语言,那就是直接用二进制编程,直接操作硬件 汇编语言:站在计算机的角度,简写的英文标识符取代二进制去编 ...
- Dream------scala--函数定义、流程控制、异常处理
Dream------scala--函数定义.流程控制.异常处理 一.函数的定义 1.新建工程
- 第10章 Shell编程(4)_流程控制
5. 流程控制 5.1 if语句 (1)格式: 格式1 格式2 多分支if if [ 条件判断式 ];then #程序 else #程序 fi if [ 条件判断式 ] then #程序 else # ...
- Shell命令和流程控制
Shell命令和流程控制 在shell脚本中可以使用三类命令: 1)Unix 命令: 虽然在shell脚本中可以使用任意的unix命令,但是还是由一些相对更常用的命令.这些命令通常是用来进行文件和文字 ...
- PHP基础知识之流程控制的替代语法
PHP 提供了一些流程控制的替代语法,包括 if,while,for,foreach 和 switch. 替代语法的基本形式是把左花括号({)换成冒号(:),把右花括号(})分别换成 endif;,e ...
- Python黑帽编程2.4 流程控制
Python黑帽编程2.4 流程控制 本节要介绍的是Python编程中和流程控制有关的关键字和相关内容. 2.4.1 if …..else 先上一段代码: #!/usr/bin/python # - ...
随机推荐
- BP神经网络及手工搭建神经网络
import pandas as pd import numpy as np import matplotlib.pyplot as plt def sigmoid(x): # 定义网络激活函数 re ...
- 最小化安装debian10&gnome最小化安装
直到后面配置网络源之前都是断网安装,因为debian security好像总是要去总源找点东西,所以即便你选择国内源甚至不选择网络源安装,依然会莫名 的失败. I. 最小化安装debian10(用ro ...
- git 提交本地仓库到远程
提交本地仓库到远程指定仓库 假如已经在远程github创建了项目 在本地创建了和github同样工程并添加了代码,如eclipse创建出工程并写了代码.要把这些代码提交到github git bash ...
- jmeter中监听器及测试结果分析
- Prettier 与 ESLint 对函数名后空格的处理
问题 Prettier 格式化 JavaScript 代码之后,默认不会在函数与 () 添加空格,而 ESLint 默认情况下则要求函数与 () 之间必须有一个空格. 保留空格的方案配置 方案 1 在 ...
- 《Django 3 Web应用开发从零开始学(视频教学版)》源码课件教学视频免费下载
#好书推荐##好书奇遇季#<Django 3 Web应用开发从零开始学(视频教学版)>,配书资源文后提供了下载二维码.京东当当天猫都有发售. https://item.jd.com/133 ...
- 面试之CAS
1.CAS(Compare And Swap)比较并替换,是线程并发运行时用到的一种技术或者算法,CAS与之对应的是一些锁技术,,例如synconozied,同事这种比较替换的思想也可以运用到数据库上 ...
- Unity UGUI --- Text组件预先获取文本的宽度和高度
转自:https://blog.csdn.net/u010180140/article/details/104049958 原作者是用lua写的.明白用什么接口就好,什么语言不重要. 给定文本内容给T ...
- Linux下查找并杀死 zombile 和 stopped 进程
用top命令查看系统运行情况,突然发现stopped和zombile进程个数居然不是0. [root@myos software]# top top - 11:20:17 up 60 days, 17 ...
- llinux day02 基础操作 帮助 文件管理 马
免密码登录(只是为了方便教学,免了图形界面的密码) 1,Linux免密自动以root身份登录图形化界面,修改etc/gdm/custom.conf 在deamon下面添加两行,注意区分大小写 [dae ...