Golang-程序流程控制 if、switch

  

程序流程控制介绍

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

  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 (×)             fmt.Println(num2)
} 

  分支控制 

    分支控制就是让程序有选择执行。有下面三种形式
    1)单分支
    2)双分支

    3)多分支

    单分支控制

      基本语法

        

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

       

      单分支的流程图
      流程图可以用图形方式来更加清晰的描述程序执行的流程。

      

      单分支细节说明

      

    双分支控制

      基本语法

      

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

      

      ?双分支的流程图的分析

         

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

    单分支和双分支的案例

      

       

         

         

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

          

         6)编写程序,声明 2 个 float64 型变量并赋值。判断第一个数大于 10.0,且第 2 个数小于 20.0,打印两数之和。
         7)【选作】定义两个变量 int32,判断二者的和,是否能被 3 又能被 5 整除,打印提示信息

          

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

          

     多分支控制

      基本语法

      

      对上面基本语法的说明
       1)多分支的判断流程如下:
        (1)先判断条件表达式 1 是否成立,如果为真,就执行代码块 1
        (2)如果条件表达式 1 如果为假,就去判断条件表达式 2 是否成立, 如果条件表达式 2 为真, 就执行代码块 2
        (3)依次类推.
        (4)如果所有的条件表达式不成立,则执行 else 的语句块。
       2)else 不是必须的。
       3)多分支只能有一个执行入口。看一个多分支的流程图(更加清晰)

        

        多分支的快速入门案例
        岳小鹏参加 Golang 考试,他和父亲岳不群达成承诺: 如果:
        成绩为 100 分时,奖励一辆 BMW;
        成绩为(80,99]时,奖励一台 iphone7plus; 当成绩为[60,80]时,奖励一个 iPad;
        其它时,什么奖励也没有。
        请从键盘输入岳小鹏的期末成绩,并加以判断代码如下:

        

        对初学者而言,有一个使用陷阱.

        

        练习题

        

           

        

嵌套分支

  基本介绍

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

  

  案例

  参加百米运动会,如果用时 8 秒以内进入决赛,否则提示淘汰。并且根据性别提示进入男子组或女子组。【可以让学员先练习下】, 输入成绩和性别。

  

  出票系统:根据淡旺季的月份和年龄,打印票价 [考虑学生先做] 4_10 旺季:
  成人(18-60):60 儿童(<18):半价老人(>60):1/3
  淡季:
  成人:40 其他:20

  

  

switch 分支控制

  基本的介绍
  1)switch 语句用于基于不同条件执行不同动作,每一个 case 分支都是唯一的,从上到下逐一测试,直到匹配为止。
  2)匹配项后面也不需要再加 break

  语法及流程控制图

    

  对上图的说明和总结
  1)switch 的执行的流程是,先执行表达式,得到值,然后和 case 的表达式进行比较,如果相等, 就匹配到,然后执行对应的 case 的语句块,然后退出 switch 控制。
  2)如果 switch 的表达式的值没有和任何的 case 的表达式匹配成功,则执行 default 的语句块。执行后退出 switch 的控制.
  3)golang 的 case 后的表达式可以有多个,使用 逗号 间隔.
  4)golang 中的 case 语句块不需要写 break , 因为默认会有,即在默认情况下,当程序执行完 case 语句块后,就直接退出该 switch 控制结构。

  案例

  请编写一个程序,该程序可以接收一个字符,比如: a,b,c,d,e,f,g a 表示星期一,b 表示星期二  … 根据用户的输入显示相依的信息.要求使用 switch  语句完成

  

  switch 的使用的注意事项和细节

  1)case/switch 后是一个表达式( 即:常量值、变量、一个有返回值的函数等都可以)

  

  2)case 后的各个表达式的值的数据类型,必须和 switch 的表达式数据类型一致

  

   3)case 后面可以带多个表达式,使用逗号间隔。比如 case 表达式 1,  表达式 2 ...

  

  4)case 后面的表达式如果是常量值(字面量),则要求不能重复

  

  5)case 后面不需要带break , 程序匹配到一个 case 后就会执行对应的代码块,然后退出 switch,如果一个都匹配不到,则执行 default
  6)default 语句不是必须的.
  7)switch 后也可以不带表达式,类似 if --else 分支来使用。【案例演示】

  

  8)switch 后也可以直接声明/定义一个变量,分号结束,不推荐。 【案例演示】

  

  9)switch 穿透-fallthrough ,如果在 case 语句块后增加 fallthrough ,则会继续执行下一个 case,也叫 switch 穿透

  

  10)Type Switch:switch 语句还可以被用于 type-switch 来判断某个 interface 变量中实际指向的变量类型 【还没有学 interface, 先体验一把】

  

  switch 的课堂练习
  1)使用 switch 把小写类型的 char 型转为大写(键盘输入)。只转换 a, b, c, d, e. 其它的输出“other”。

  

  2)对学生成绩大于 60 分的,输出“合格”。低于 60 分的,输出“不合格”。(注:输入的成绩不能大于 100)

    

  3)根据用户指定月份,打印该月份所属的季节。3,4,5 春季 6,7,8 夏季 9,10,11 秋 季 12, 1, 2 冬季
  

  switch 和 if 的比较

  总结了什么情况下使用 switch ,什么情况下使用 if
  1)如果判断的具体数值不多,而且符合整数、浮点数、字符、字符串这几种类型。建议使用 swtich语句,简洁高效。
  2)其他情况:对区间判断和结果为 bool 类型的判断,使用 if,if 的使用范围更广。

原文地址:https://www.cnblogs.com/Essaycode/p/12641427.html

时间: 2024-08-17 14:48:08

Golang-程序流程控制 if、switch的相关文章

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) //两边都是数值,+运算符是相加的作用

十四、流程控制之switch语句

using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace _14.流程控制之switch语句 {     class Program     {         static void Main(string[] args)         {             // switch语句                          /**        

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基本语法中的程序流程控制进行详细讲解. 目录: 顺序结构 程序从上到下逐行地执行,中间没有任何判断和跳转 分支结构 根据条件,选择性地执行某段代码 if-else分支语句 switch-case分支语句 循环结构 根据循环条件,重复性的执行某段代码 for循环语句 while循环语句 do.