scala 分支控制 (单分支、双分支、多分支)、 分支判断的返回值
文章目录
- 1. 单分支、双分支、多分支
- 2. 分支判断的返回值
- 2.1 Scala中的表达式均有返回值
- 2.2 分支判断中返回值类型
- 3.Scala语言中没有三元运算符
1. 单分支、双分支、多分支
语法:
if(布尔表达式) {// 如果布尔表达式为 true 则执行该语句块
}
if(布尔表达式) {// 如果布尔表达式为 true 则执行该语句块
} else {// 如果布尔表达式为 false 则执行该语句块
}
if(布尔表达式1) {// 如果布尔表达式1为 true,则执行该语句块
} else if ( 布尔表达式2 ) {// 如果布尔表达式2为 true,则执行该语句块
}...
} else {// 上面条件都不满足的场合,则执行该语句块
}
如:
输入年龄,如果年龄小于18岁,则输出“童年”。如果年龄大于等于18且小于等于30,则输出“青年”,如果年龄大于30小于等于50,则输出”中年”,否则,输出“老年”
object ScalaBranch {def main(args: Array[String]): Unit = {val age = 30if ( age < 18 ) {println("童年")} else if ( age <= 30 ) {println("青年")} else if ( age <= 50 ) {println("中年")} else {println("老年")}}
}
或
object ScalaBranch {def main(args: Array[String]): Unit = {val age = 30val result = if ( age < 18 ) {"童年"} else if ( age <= 30 ) {"青年"} else if ( age <= 50 ) {"中年"} else {"老年"}println(result)}
}
2. 分支判断的返回值
2.1 Scala中的表达式均有返回值
(1)
在java中字符串fd 被赋予变量b
在scala中 a = "list"
视为一个整体,返回值为Unit,被赋予变量b
object T2 {def main(args: Array[String]): Unit = {var a = "fdas"var b = a = "list"print(b) //()}
}
(2)
println()
的返回值类型为Unit
2.2 分支判断中返回值类型
scala作为一门静态类型编程语言
,需要在执行之前将数据类型确定,编译器在编译时就会考虑多种情况下的通用方案
分支判断中返回值类型取决于满足条件的最后一行代码的执行结果
(1)下面代码中的变量result类型为Any类型,用于匹配不同分支的执行结果
object T1 {def main(args: Array[String]): Unit = {val i = 10val result= if (i > 55) {println("%s 大于 55", i)} else if (i > 30) {"cz"} else {false}print(result)}
}
(2)下面代码中的变量result类型为String类型
object T1 {def main(args: Array[String]): Unit = {val i = 10val result = if (i > 55) {"%s 大于 55"} else if (i > 30) {"cz"} else {"false"}print(result)}
}
3.Scala语言中没有三元运算符
scala中如果逻辑代码只有一行,花括号可省略,若需要三元运算符,可使用if分支判断代替三元运算符
object T4{def main(args: Array[String]): Unit = {val age:Byte=40val newAge = if (age > 20) 20 else 18println(newAge)}
}
scala 分支控制 (单分支、双分支、多分支)、 分支判断的返回值相关推荐
- form表单ajax提交 ac,請求Ajax 帶返回值的通用方法, 自動獲取頁面控件值(form表單post方法提交 ),自動給控件賦值...
//自動獲取頁面控件值 function GetWebControls(element) { var reVal = ""; $(element).find('input,sele ...
- 【C++】C++函数需要有返回值,但非全分支return(RVO)
今天在review以前的代码的时候,遇到了一个比较奇怪的现象,函数的有返回值,但只在if后面有return,else后面忘写了.但这个版本的代码已经调试验证通过了,没有问题的,这就很怪异. 考验一道题 ...
- 【jQuery】使用jquery.form.js,获取提交表单返回值
jQuery表单库介绍 实现 html 中提交表单并实现不跳转页面处理返回值 jQuery表单库(jquery.form.js库)以jQuery为基础,用于处理表单AJAX提交,使得表单AJAX提交简 ...
- 【Java】流程控制 - 顺序结构、 选择(分支)结构(单分支、双分支、多分支、嵌套)、循环结构(for、while、do...while)、跳转语句(break、continue)
流程控制语句结构 文章目录 流程控制语句结构 一. 顺序结构 1. 输出语句 2. 输入语句 3.code 二.复合语句 三. 分支结构 1. 条件判断 1.单分支结构 2.双分支结构 3.多分支结构 ...
- scala(三):流程控制-分支控制、嵌套循环、for、while、do…while循环、循环中断、多支循环
目录 流程控制 分支控制 嵌套分支 for循环控制 while和do-while循环控制 循环中断 多重循环 流程控制 分支控制 分支控制可以使程序有选择的执行,分支类型有:单分支.双分支.多分支 单 ...
- linux脚本多分支if语句,shell脚本基础应用(二)if单分支,双分支,多分支语句...
前言:为了使shell脚本具有一定的"判断"能力,根据不同的条件来完成不同的管理任务.使脚本具有一定的"智能". 一.条件测试操作 文件测试常见操作: -d:: ...
- Go核心开发学习笔记(九)—— 顺序控制,分支控制
程序流程控制 决定程序如何执行,常用三大流程控制语句 顺序控制 分支控制:if-else 循环控制:for 符合条件前循环控制,符合条件后循环控制(笔记十去记录) 顺序控制 从上到下依次执行,每个程序 ...
- JavaSE——流程控制(接收输入Scanner、分支结构(if与switch)、循环结构(while、do-while与for))
第3节 流程控制 一.接收用户输入 使用Scanner类来接收用户的输入. 新建一个Scanner对象:Scanner input = new Scanner(System.in); input可以接 ...
- 洛谷oj题单【入门2】分支结构-入门难度(Java)
洛谷oj题单[入门2]分支结构-入门难度(Java) 来源:https://www.luogu.com.cn/training/101#problems P5709 [深基2.习6]Apples Pr ...
最新文章
- 一步一步学习VirtualBox安装CentOS7和CentOS8
- Android短信的发送和广播接收者实现短信的监听
- 垂直网站架构改造 - 怎样成为一个山寨CTO
- python Matplotlib.pyplot 如何绘制三维折线图, 散点图, 线框图, 表面图, 柱状图, 箭头图, 2D转3D图, 文本图, 3D拼图, 网状图, 直方图, 角面片图, 条状图?
- linux程序加载器,Linux 动态连接加载器 ld-linux用法
- VScode配置ESlint自动修复格式化
- 放弃Venn-Upset-花瓣图,在线拥抱二分网络
- 《剑指 Offer I》刷题笔记 11 ~ 19 题
- 开发过程中常用的 dos 命令
- java 发送信号_java – 在Windows中发送任意信号?
- 男生是学计算机网络还是应用,男生适合读计算机网络技术专业吗
- 用火箭送快递?淘宝宣布联合蓝箭航天起启动“宝箭”计划...
- 关于小学计算机论文题目,经典小学计算机课论文选题 小学计算机课论文题目怎样定...
- mysql导入错误1148_解决ubuntu server mysql load data infile 导入本地文件ERROR 1148 (42000)错误。...
- 百练 C/C++测试
- HDMI2.1定义以及物理转换Bypass芯片详解
- Opencv2.4学习::边缘检测(4)Roberts算子
- flask 使用html模板,Flask框架使用HTML模板的方法
- Termux手机终端-逗你玩儿
- 【学习点滴】c++类中虚表的内存分配,菱形继承