开发者学堂课程【Scala 核心编程-基础:顺序控制】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/609/detail/8909
顺序控制
前言
流程控制,对初学者来说,最麻烦就是负循环,这个课程在前面已经学习过了,所以说现在只需要将它简单的复习一下,看看这个流程控制主要内容。
一、 程序流程控制介绍
1、在程序中,程序运行的流程控制决定程序是如何执行的,是学员必须掌握的,主要有三大流程控制语句。
2、温馨提示:Scala 语言中控制结构和 Java 语言中的控制结构基本相同,在不考虑特殊应用场景的情况下,代码书写方式以及理解方式都没有太大的区别:
首先流程控制它的概念跟 Java 是一样的,在 Scala 里面,流程控制也主要有三种,一种叫顺序控制,第二种叫分支控制,第三种叫循环控制。
(1) 顺序控制:
程序从上到下逐行地执行,中间没有任何判断和跳转。如下图所示:
1顺序控制举例和注意事项
Scala 中定义变量时采用合法的前向引用。如:
def main(args : Array[String]):Unit= {
var num1 = 12
var num 2 = num1+2
}
错误形式:
def main(args : Array[String]): Unit= {
varnum2=num1+2
var num1 = 12
}
程序从上向下逐行执行,中间没有任何判断和跳转,在 Scala 里面,它仍然遵守这种合法地向前引用的规则。比如说这里,在这个地方要用到 number1,那么这个 number1事先应该在前面定义或者说是声明过,不能反着写,反着写是不行的。但是有一点要说清楚,一个函数的顺序是可以反的,比如说举个例子:
package com. atguigu. chapter03.
inputcon
object Demo01 {
//定义一个方法. //在 demo 里面是方法,
def
hi ():Unit = {
println(“hi”)
}
def main(args: Array[string] ): Unit = {
/*
要求:可以从控制台接收用户信息【姓名,年龄,薪水】。
*/
println(“请输入姓名”)
val
name
=
StdIn
.readLine ( )
println(“请输入年龄”)
val
age
=
StdIn
.read
Int()
println(“请输入薪水”)
val
sal
=
StdIn
.read
Double()
printf(“用户的信息为name
=%
s
age=%d sal=%.2f
,
name,age,sal)
//
C
a
t
.sayHi()
Cat.sayHello( )
Cat.sayHi( )
hi()
}
//定义一个方法. //在 demo 里面是方法,
def
hi ():Unit = {
println(“hi”)
}
/声明了一个对象(伴生对象)
object Cat extends AAA {//此处对应 cat
//这里有一个方法
def
sayHi():Unit
= {
printl(“小狗汪汪叫
….
”)
}
}
这个方法放在后面也是可以使用的,在之前几节课的讲解中,正确的程序书写应该先定义才可以使用,问: 为什么可以使用呢?答: 有一些语言必须要按照这个规则, 但是无论怎样编辑程序,写出来的 hi 都是在object里面的, 而在编译的时候是以一个对象为整体的, 所以 hi 的顺序放在前面还是后面都是可以使用的,这个需要注意。类也一样,没有书写的顺序,但是一样可以使用。但是变量不行,比如说:
val num1 = 10
val num1 = num1 + 20
此时的顺序是正确的,如果将它们调换位置,那么就是错误的:
val num1 = num1 + 20
val num1 = 10
(错误)
有些语言可以做到这个特点,有些脚本语言甚至可以将变量写的后面去运用, 但是静态语言不可以这样去使用。
(2) 分支控制
(3) 循环控制