天天看点

God of spark is Scala---程序流程控制

一、顺序控制

1. 顺序控制介绍

程序从上到下逐行地执行,中间没有任何判断和跳转。

2. 顺序控制举例和注意事项

Scala中定义变量时采用合法的前向引用。如:

def main(args : Array[String]) : Unit = {
        var num1 = 12
        var num2 = num1 + 2
}
           

错误形式:

def main(args : Array[String]) : Unit = {
        var num2 = num1 + 2
        var num1 = 12
}
           

二. 分支控制if-else

1. 单分支
  • 基本语法
if (条件表达式) {
	执行代码块
}
           

说明:当条件表达式为ture 时,就会执行 { } 的代码。

2. 双分支
  • 基本语法
if (条件表达式) {
 执行代码块1 
 } else {
执行代码块2
}
           

说明:当条件表达式成立,即执行代码块1,否则执行代码块2.

3. 多分支
  • 基本语法
if (条件表达式1) {
执行代码块1
  }
  else if (条件表达式2) {
执行代码块2
  }
   ……
   else {
执行代码块n
   }
           

说明:当条件表达式1成立时,即执行代码块1,如果表达式1不成立,才去判断表达式2是否成立,如果表达式2成立,就执行代码块2,以此类推,如果所有的表达式都不成立,则执行 else 的代码块,注意:只能有一个执行入口。

4. 注意事项**
  • 如果大括号{}内的逻辑代码只有一行,大括号可以省略, 这点和java 的规定一样。
  • Scala中任意表达式都是有返回值的,也就意味着if else表达式其实是有返回结果的,具体返回结果的值取决于满足条件的代码体的最后一行内容.
  • Scala中是没有三元运算符,因为可以这样简写:
    God of spark is Scala---程序流程控制
5. 扩展:嵌套分支
  • 基本介绍

在一个分支结构中又完整的嵌套了另一个完整的分支结构,里面的分支的结构称为内层分支外面的分支结构称为外层分支。嵌套分支不要超过3层

  • 基本语法
if(){       
	if(){      
	}else{
	}
}
           

三. for循环控制

  • 基本介绍

Scala 也为for 循环这一常见的控制结构提供了非常多的特性,这些for 循环的特性被称为for 推导式(for comprehension)或for 表达式(for expression)

  • 基本案例
for(i <- 1 to 3){
  print(i + " ")
}
println()
           
  • 说明
  1. i 表示循环的变量, <- 规定好 to 规定
  2. i 将会从 1-3 循环, 前后闭合
  3. 输出10句 “hello,尚硅谷!”
  • for循环语法详细讲解

    https://blog.csdn.net/qq_43437122/article/details/107455978

四. while循环控制

  • 基本语法
循环变量初始化
while (循环条件) {
           循环体(语句)
           循环变量迭代
}
           
  • 说明
  1. 循环条件是返回一个布尔值的表达式
  2. while循环是先判断再执行语句
  3. 与If语句不同,While语句本身没有值,即整个While语句的结果是Unit类型的()
  4. 因为while中没有返回值,所以当要用该语句来计算并返回结果时,就不可避免的使用变量 ,而变量需要声明在while循环的外部,那么就等同于循环的内部对外部的变量造成了影响,所以不推荐使用,而是推荐使用for循环。

五. 多重循环控制

  • 介绍:
  1. 将一个循环放在另一个循环体内,就形成了嵌套循环。其中,for ,while ,do…while均可以作为外层循环和内层循环。【建议一般使用两层,最多不要超过3层】
  2. 实质上,嵌套循环就是把内层循环当成外层循环的循环体。当只有内层循环的循环条件为false时,才会完全跳出内层循环,才可结束外层的当次循环,开始下一次的循环。
  3. 设外层循环次数为m次,内层为n次, 则内层循环体实际上需要执行m*n=mn次。

六. 总结:

  1. Scala里面的do while循环控制和while类似,只不过它是先执行后判断
  2. Scala里面没有continue和break关键字,但是依然能实现这种效果,使用for循环守卫和抽象控制,抽象控制后面的博文会介绍,循环守卫参考博文Scala for循环的详细讲解。

继续阅读