寒假学习2——Scala
4.控制结构语句
在Scala中,控制结构语句包括条件分支语句和循环语句。
条件分支语句:if 语句、if…else 语句、if…else if…else 语句、if…else嵌套语句;
循环语句:for 循环、while 循环 和 do…while循环;
4.1条件分支语句
if 语句的语法格式如下:
if(布尔表达式){
如果布尔表达式为true,则执行该语句块
}
1
2
3
if…else 语句的语法格式如下:
if(布尔表达式){
如果布尔表达式为true,则执行该语句块
}else{
如果布尔表达式为false,则执行该语句块
}
1
2
3
4
5
if…else if…else 语句的语法格式如下:
if(布尔表达式1){
如果布尔表达式1为true,则执行该语句块
}else if(布尔表达式2){
如果布尔表达式2为true,则执行该语句块
}else if(布尔表达式3){
如果布尔表达式3为true,则执行该语句块
}else{
如果以上条件都为false,则执行该语句块
}
1
2
3
4
5
6
7
8
9
if…else 嵌套语句的语法格式如下:
if(布尔表达式1){
如果布尔表达式1为true,则执行该语句块
if(布尔表达式2){
如果布尔表达式2为true,则执行该语句块
}
}else if(布尔表达式3){
如果布尔表达式3为true,则执行该语句块
else if(布尔表达式4){
如果布尔表达式4为true,则执行该语句块
}
}else{
如果以上条件都为false,则执行该语句块
}
1
2
3
4
5
6
7
8
9
10
11
12
13
案例演示:判断一个变量是否等于 5,如果是 5,则打印出 “a = 5”,如果不是 5,则判断该变量是否为10,如果是 10,则打印出 “a = 10”,否则打印出“ 无法判断a的值 ”;示例代码如下:
4.2循环语句
Scala中的for循环语句和Java、Python中的for循环语句在语法上有较大的区别。
for 循环语句的语法格式:
for(变量<-表达式/数组/集合){ //箭头为大于符号"<"和减号"-"组成
循环语句;
}
1
2
3
示例:循环0到9,每循环一次将该值打印输出;
在Scala语法中,可以使用" 0 to 9 "表示0到9的范围,闭区间即包含首尾数,示例代码如下:
Scala在for循环语句中可以通过使用 if 判断语句过滤一些元素,多个过滤条件用分号分隔开。
例:输出 0 到 9 范围中大于5的偶数;示例代码如下:
Scala中的while循环语句只要表达式为 true ,循环体就会重复执行。
while循环语句的语法格式如下:
while(布尔表达式){
循环语句;
}
1
2
3
例:假设有一个变量x=1,判断该变量是否小于10,如果是则打印输出,然后进行 +2 运算;示例代码如下:
do…while循环语句的语法格式如下:
do{
循环语句;
}while(布尔表达式)
1
2
3
do…while循环语句与while语句主要区别是:do…while语句的循环语句至少执行一次。
例:假设一个变量y=10,先打印输出,然后进行 +1 运算,再判断该变量是否小于20,如果是则进行循环;示例代码如下:
5.方法与函数
Scala的方法是类的一部分,而函数是一个对象可以赋值给一个变量。换句话说,在类中定义的函数既是方法。
Scala中可以使用 def 语句和 val 语句定义函数,而定义方法只能使用 def 语句。
5.1方法
Scala方法的定义格式如下:
def functionName([参数列表]):[return type]={
function body
return[expr]
}
1
2
3
4
从上面代码可以看出,Scala的方法由多个部分组成:
def:Scala的关键字,并且是固定不变的,一个方法的定义是由def关键字开始的;
functionName:Scala方法的方法名
([参数列表]):[return type]:Scala方法的可选参数列表,参数列表中的每个参数都有一个名字,参数名后跟着冒号和参数类型
function body:方法的主体
return[expr]:Scala方法的返回类型,可以是任意合法的Scala数据类型,若无返回值,则返回类型为Unit。
例:定义一个方法add(),实现两个数相加求和;示例代码如下:
Scala的方法调用格式如下:
functionName(参数列表) //没有使用实例的对象调用方式
[instance.]functionName(参数列表) //方法由实例对象来调用
1
2
接上例调用:
5.2 函数
在Scala中,由于使用 def 语句定义以及调用函数的格式均与方法一样,然而,Scala函数与Scala方法还是有区别的,可以使用 val 语句定义函数的格式,并且函数必须要有参数列表,而方法可以没有参数列表。
Scala 函数的定义格式如下:
val functionName = ([参数列表])=>function body
1
例:定义一个函数addInt,实现两个整数相加求和;示例代码如下:
函数的调用跟方法一样:functionName(参数列表)
5.3 方法转换成函数
方法转换成函数的格式如下:
val 函数name = 方法name _
1
在上述的格式中,方法name后紧跟一个空格和下划线,是为了告知编译器将方法name转换成函数,而不是调用这个方法。
例:定义一个方法m,实现将方法m转成函数 f ;示例代码如下:
提示:Scala方法的返回值类型可以不写,编译器可以自动推断出来,但对于递归函数来说,必须要指定返回类型。
原文具体可看(https://blog.csdn.net/weixin_51996831/article/details/123329304)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· 使用C#创建一个MCP客户端
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· Windows编程----内核对象竟然如此简单?