顺序控制|学习笔记

简介: 快速学习顺序控制。

开发者学堂课程【Scala 核心编程-基础:顺序控制】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/609/detail/8909


顺序控制

 

前言

流程控制,对初学者来说,最麻烦就是循环,这个课程在前面已经学习过了,所以说现在只需要将它简单的复习一下,看看这个流程控制主要内容。

 

一、 程序流程控制介绍

1、在程序中,程序运行的流程控制决定程序是如何执行的,是学员必须掌握的,主要有三大流程控制语句。

2、温馨提示:Scala 语言中控制结构和 Java 语言中的控制结构基本相同,在不考虑特殊应用场景的情况下,代码书写方式以及理解方式都没有太大的区别

首先流程控制它的概念跟 Java 是一样的,在 Scala 里面,流程控制也主要有三种,一种叫顺序控制,第二种叫分支控制,第三种叫循环控制

(1) 顺序控制

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

image.png

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.readInt()

println(“请输入薪水”)

val sal = StdIn.readDouble()

printf(“用户的信息为name=%s age=%d sal=%.2f,name,age,sal)

//Cat.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) 循环控制

相关文章
|
6月前
同步模式之顺序控制(笔试)
同步模式之顺序控制(笔试)
30 0
|
6月前
|
存储 Linux 调度
Linux多线程【线程控制】
Linux多线程【线程控制】
69 0
|
1月前
|
调度
正确理解协程
正确理解协程
|
存储 Linux 调度
Linux系统编程5(线程概念详解)
Linux系统编程5(线程概念详解)
223 0
|
存储 网络协议 Linux
计算机操作系统学习笔记(12)——I/O 多路复⽤:select/poll/epoll
计算机操作系统学习笔记(12)——I/O 多路复⽤:select/poll/epoll
106 0
|
存储 算法 调度
《计算机操作系统-第五章》之线程与多线程模型
《计算机操作系统-第五章》之线程与多线程模型
167 0
|
Java API 调度
|
物联网 Linux 调度
线程的概念|学习笔记
快速学习线程的概念
线程的概念|学习笔记
|
数据采集 算法 Java
库调多了 都忘了最基础的概念 - 进程 / 线程篇
库调多了 都忘了最基础的概念 - 进程 / 线程篇
118 0
库调多了 都忘了最基础的概念 - 进程 / 线程篇
|
物联网 Linux 开发者
信号阻塞集的概念|学习笔记
快速学习信号阻塞集的概念