程序流程控制1

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

1)顺序控制
2)分支控制
3)循环控制

顺序控制介绍:

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

顺序控制举例和注意事项:

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

func main() {
  var num1 int = 10   //声明了num1
  var num2 int = num1 + 20    //使用num1
  fmt.Println(num2)
}

错误形式:

func main() {

  var num2 int = num1 + 20   //使用了num1
  var num1 int = 10   //声明num1 (X 错误的)
  fmt.Println(num2)
}

分支控制if-else 介绍:

让程序有选择的执行,分支控制有三种:

  1)单分支
  2)双分支
  3)多分支

单分支控制:

基本语法:

if 条件表达式{
  执行代码块
}

说明:当条件表达式为true时,就会执行{} 的代码。
注意{}是必须有的,就算你只写一行代码。

案例说明:

请大家看个案例[ifDemo.go]:
编写一个程序,可以输入人的年龄,如果该同志的年龄大于18岁,则输出“你年龄大于18,要对自己的行为负责!”

func main() {

  //分析
  //1.年龄 ==》 var age int
  //2.从控制台接收一个输入 fmt.Scanln(&age)
  //3.if判断

  var age int
  fmt.Println("请输入年龄:")
  fmt.Scanln(&age)
  if age > 18 {
    fmt.Println("你年龄大于18岁")
  }

}

单分支对应的流程图:

细节说明:

Go的if 还有一个强大的地方就是条件判断语句里面允许声明一个变量,这个变量的作用域只能在该条件逻辑块内,其它地方就不起作用了【举例说明】

func main() {
  //golang支持在if中,直接定义一个变量,比如下面的方式。
  if age := 20; age > 18 {
    fmt.Println("你的年龄大于18,要对自己的行为负责!")
  }
}

双分支控制:

基本语法:

if 条件表达式 {
  执行代码块
}else {
  执行代码块2
}

说明:当条件表大会成立,即执行代码块1,否则执行代码块2。 {}也是必须有的。

案例演示:

编写一个程序,可以输入人的年龄,如果该同志的年龄大于18岁,则输出“你的年龄大于18岁,要对自己的行为负责!”。否则,输出“你的年龄不大这次放过你了。”

func main() {
  var age int
  fmt.Println("请输入年龄:")
  fmt.Scanln(&age)
  if age > 18 {
    fmt.Println("你年龄大于18岁")
  } else {
    fmt.Println("你的年龄不大于18岁")
  }
}

双分支对应的流程图:

对双分支的总结:

1、从上图看 条件表达式就是 age > 18
2、执行代码块1 ===》fmt.Println("你的年龄大于18")..
3、执行代码块2 ===》fmt.Println("你的年龄不大于18")..
4、强调一下 双分支只会执行其中的一个分支。

练习题:
1)编写程序,声明2个int32型变量并赋值。判断两数之和,如果大于等于50,打印“hello world!”

func main() {
  var n1 int32 = 10
  var n2 int32 = 50
  if n1 + n2 >= 50 {
    fmt.Println("hello world!")

  }
}

2)编写程序,声明2个float64型变量并赋值。判断第一个数大于10.0,且第二个数小于20.0,打印两数之和

func main() {
  var x float64 = 11.0
  var y float64 = 17.0
  if x > 10.0 && y < 20.0 {
    fmt.Println(x + y)
  }
}

3)【选作】定义两个int32,判断二者的和,是否能被3又能被5整除,打印提示信息
func main() {
  var x int32 = 10
  var y int32 = 5
  if (x + y) % 3 == 0 && (x + y) % 5 == 0 {
    fmt.Println("能被3又能被5整除")
  }
}

4)判断一个年份是否是闰年,闰年的条件是符合下面二者之一:(1)年份能被4整除,但不能被100整除;(2)能被400整除

func main() {
  var year int = 2020
  if (year % 4 == 0 && year % 100 != 0) || year % 400 == 0 {
    fmt.Printf("%v是闰年", year)
  }
}

多分支控制:

基本语法:
if 条件表达式 {
  执行代码块1
} else if 条件表达式2 {
  执行代码块2
}

......

else {
  执行代码块n
}

案例演示1:

岳晓鹏参加Golang考试,它和父亲岳不群达成承诺:

如果:
成绩为100分时,奖励一辆BMW;
成绩为(80,99]时,奖励一台iphone7puls;
当成绩为[60,80]时,奖励一个iPad;
其它时,什么奖励也没有。
请从键盘输入岳晓鹏的期末成绩,并加以判断

func main() {
  var score int
  fmt.Println("请输入成绩:")
  fmt.Scanln(&score)

  if (score < 0 || score > 100) {
    fmt.Println("您输入错误,请输入0-100之间的数字")
  } else if score == 100 {
    fmt.Println("奖励一辆BMW")
  } else if score > 80 && score <= 99 {
    fmt.Println("奖励一台iphone7plus")
  } else if score >= 60 && score <= 80 {
    fmt.Println("奖励一个 iPad")
  } else {
    fmt.Println("什么都不奖励")
  }
}

嵌套分支:

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

基本语法:

if 条件表达式 {
  if 条件表达式 {
  } else {
  }
}

案例1:

参加百米运动会,如果用时8秒以内进入决赛,否则提示淘汰。并且根据性别提示进入男子组或女子组。【可以让学员先练习下】,输入成绩和性别,进行判断,1分钟思考思路。
float64 second | string gender

func main() {
  //分析思路
  //1. 定义一个变量,来接收跑步使用秒数,float64
  //2. 定一个变量,来接收性别string
  //3. 因为判断是嵌套的判断,因此我们会使用嵌套分支

  var second float64
  fmt.Println("请输入秒数:")
  fmt.Scanln(&second)

  if second <= 8 {
    //进入决赛
    var gender string
    fmt.Println("请输入性别:")
    fmt.Scanln(&gender)
    if gender == "男" {
      fmt.Println("进入决赛的男子组")
    } else {
      fmt.Println("进入决赛的女子组")
    }
  } else {
    fmt.Println("你被淘汰了!!!")
  }
}

案例2:

出票系统:根据淡旺季的月份和年龄,打印票价

4_10 旺季:
    成人 (18-60) : 60
    儿童 (<18) : 半价
    老人 (>69) : 1/3

淡季:
    成人:40
    其他:20

func main() {

  //分析思路
  //1.month age 的两个变量 byte
  //2.使用嵌套分支

  var month byte
  var age byte
  fmt.Println("请输入游玩月份")
  fmt.Scanln(&month)
  fmt.Println("请输入您的年龄:")
  fmt.Scanln(&age)

  if month >= 4 && month <= 10 {
    if age > 60 {
      fmt.Printf("%v月,您是老人,您的票价是1/3", month)
    } else if age >= 18 {
      fmt.Printf("%v月,您是成年人,是正常的票价", month)
    } else {
      fmt.Printf("%v月,您是儿童,票价是半价", month)
    }
  } else {
    if age >= 18 && age < 60 {
      fmt.Println("淡季,成人票价是40元")
    } else {
      fmt.Println("淡季,老人和儿童票价是20元")
    }
  }
}

原文地址:https://www.cnblogs.com/green-frog-2019/p/11343087.html

时间: 2024-07-30 04:12:28

程序流程控制1的相关文章

逻辑运算_三元运算符_程序流程控制

 //逻辑运算符   /*       逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写成x>3 & x<6 .      "&"和"&&"的区别: 单&时,左边无论真假,右边都进行运算:       双&时,如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算.       "|"和"||"的区别同理,||表示:当左边为真

Swift 程序流程控制

Swift采用类同c语言的流程控制语句,if, for, for-in,  while,  do-while , switch, break, continue .Swift语言的Switch语句自动添加了break效果,这样你可以不用没个case后面再写break.同c语言不同,swift语言的if for while 等,没有括号来括表达式 1: if 语句.if语句只对逻辑值检测.这里不同于c语言的if语句是检测是否 非0. var bFlag:Bool = true if bFlag {

JavaScript基础之算术运算符 、 前后增量/前后减量运算符 、比较运算符、逻辑运算符、 程序流程控制

1.算术运算符 加.减.乘.除.求余,其中%是求余运算  +  运算符 a.如果加号两边都是字符串,那么加号的作用是连接. b.如果加号的两边都是数值,那么加号的作用是相加. c.如果加号一边是字符串,那么加号的作用是连接. var num1 = 123 var string1 = "123" console.log(num1 + string1) //这是的+运算符是链接作用,结果为123123 console.log(num1 + num1) //两边都是数值,+运算符是相加的作用

JS第七课:运算符、程序流程控制

1. 运算符: 1)  算术:+ 加.- 减.* 乘./ 除.% 取模(求余数) 2)  赋值:=.+=.-=.*=./=.%= 3) 关系:<.>.<=.>=.==.!=.===.!== 4) 逻辑:&& 与.|| 或.! 否 5) 运算符优先级:括号 2. 程序流程控制: 1) 判断:if.switch(case break default).?: 2) 循环:while.for 3) 跳出:break.continue 4) 什么是真.什么是假?------B

HTML5独家分享:原生JavaScript学习笔记2——程序流程控制

当当当当 .....楼主又来了!新一期的JS学习笔记2--程序流程控制更新了! 当当当当 .....楼主又来了!新一期的JS学习笔记2--程序流程控制更新了! 想一键获取全部JS学习笔记的可以给楼主留言哦! js中的程序控制语句 常见的程序有三种执行结构: 1. 顺序结构 2. 分支结构 3. 循环结构 顺序结构:程序从第一行开始执行,按顺序执行到最后一行 分支结构:就像一条岔路口,必须选择且只能选择其中一条道路继续走下去,不能同时执行两个分支里的代码. 我们可以使用如下三种方式来实现程序的分支

第三章 程序流程控制

3.1 程序流程控制 判断结构 选择结构 循环结构 3.1.1 判断结构 if语句 三种格式: 1. if(条件表达式){ 执行语句: } 2. if(条件表达式){ 执行语句: } else { 执行语句: } 3. if(条件表达式){ 执行语句: } else if(条件表达式){ 执行语句: } ...... else{ 执行语句: } if控制的语句只有一条,可以不要{}:也就是说,如果if没有{},它只控制离它最近的那条语句. 3.1.2 选择结构 switch语句 switch(表

Day04 程序流程控制

##程序流程控制 * 判断结构 * 选择结构 * 循环结构 ###判断结构 > ####if语句 三种格式 ```java /*一层判断*/ if(条件表达式)        //如果if控制的语句只有一条,那么下面的大括号可以省略,即控制距离if最近的单条语句:else同理. { 执行语句; } ``` ```java /*两层判断*/ /* 三元运算符 变量 = (条件表达式)?表达式1:表达式2; 三元运算符优点是可以看做简化的if else语句,缺点是因为本身是运算符,运算结束后必须有一

2.6-Java语言基础(程序流程控制)

判断结构 选择结构 循环结构 2.6.1  判断结构 if语句 三种格式: 1.  if(条件表达式) { 执行语句: } 2.  if(条件表达式) { 执行语句: } else { 执行语句: } 3. if(条件表达式) { 执行语句: } else if (条件表达式) { 执行语句: } -- else { 执行语句: } if语句特点: a,每一种格式都是单条语句. b,第二种格式与三元运算符的区别:三元运算符运算完要有值出现.好处是:可以写在其他表达式中. c,条件表达式无论写成什

Java架构师成长之道之程序流程控制

Java架构师成长之道之程序流程控制 Java架构师成长之道 4.1 程序流程控制概述 之前编写的绝大多数程序都是顺序执行,也就是从main函数开始,由上到下一行一行的执行,也被称为顺序结构. 在生活中除了顺序结构以外还有选择结构.循环结构,例如在淘宝购物时登录账号就是一个选择结构,如果输入的正确的用户名和密码才能购买商品,否则就会提示用户名密码错误. 而在淘宝首页的Banner就是一个循环结构,在指定的时间内循环切换图片. 在Java中,支持if/else和switch case两种选择结构,

Java基础第四天总结——Java基础语法——程序流程控制

目录: 一.程序流程控制 二.顺序结构 三.分支语句1:if-else结构 四.分支语句2:switch-case结构 五.循环结构 六.循环结构1:for循环 /*--------------------------黄金分割线----------------------------------*/ 一.程序流程控制 > 顺序结构 ● 自上逐行向下执行 >分支结构 ● 根据条件,选择性执行某段代码 ● 有if-else和switch-case两种分支语句 >循环结构 ● 根据循环条件,重