当前位置: 首页 > news >正文

07【保姆级】-GO语言的程序流程控制【if switch for while 】

之前我学过C、Java、Python语言时总结的经验:

  1. 先建立整体框架,然后再去抠细节。
  2. 先Know how,然后know why。
  3. 先做出来,然后再去一点点研究,才会事半功倍。
  4. 适当的囫囵吞枣。因为死抠某个知识点很浪费时间的。
  5. 对于GO语言,切记遵守语法格式规则。(例如python语言、例如SpringBoot框架等)
    解释:某些知识点,就是很难了解,那么先做出来,然后继续向前学习,可能在某个时间点我们就会恍然大悟。

07【保姆级】-GO语言的程序流程控制【if switch for while 】

  • 一、 分支控制(if else )
  • 二、分支控制 switch
    • 2.1 基本介绍
    • 2.2 switch 和if 的比较
  • 三、for循环
    • 3.1 语法格式
  • 四、break和continue跳转控制语句

一、 分支控制(if else )

基本语法:

if 条件表达式 {代码块
}//说明:当条件表达式为true, 则执行{}中的代码。

案例:判断输入的年龄,是否大于18岁。

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

Golang支持在if中,直接定义一个变量:

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

在这里插入图片描述

二、分支控制 switch

2.1 基本介绍

  1. Switch语句用于基于不同条件执行不同动作,每一个case分支都是唯一的,从上到下逐一测试,知道匹配为止。
  2. switch的执行的流程是,先执行表达式得到值,然后和case的表达式进行比较,如果相等就匹配到,然后执行对应的case的语句块,然后退出switch控制
  3. 如果switch的表达式的值都没有和任何case的表达式匹配成功,则执行default的语句。执行后退出switch的控制。最后的default语句不是必须的
  4. Golang的case后的表达式可以有多个,使用逗号间隔。
  5. golang中的case语句块不需要写break,因为默认会有,即使在默认情况下当执行case语句块后,就直接退出switch控制结构。
  6. case/switch后是一个表达式(即:常量值、变量一个有返回值的函数等都可以的)
  7. case后的各个表达式的值的数据类型,必须和switch的表达式数据类型一致
  8. case后面可以带多个表达式,使用逗号间隔。比如case 表达式1,表达式2…
  9. case后面的表达式如果是常量值(字面量),则要求不能重复
  10. switch后面可以不带表达式,类似 if else 分支来使用。
  11. Switch后也可以直接声明、定义一个变量,分号结束(不推荐)
  12. switch 穿透 fallthrough,如果在case语句块后增加 fallthrough,则会继续执行下一个case,也叫switch穿透。
  13. Type Swtich:swtich语句还可以被用于type-switch 来判断某个interface 变量中实际指向的变量类型
    在这里插入图片描述
    在这里插入图片描述

2.2 switch 和if 的比较

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

三、for循环

  1. 将一个循环放在另一个循环体内,就形成了嵌套循环。在外边的 for 称为外层循环在里面的 for循环称为内层循环。【建议一般使用两层,最多不要超过 3 层】
  2. 实质上,嵌套循环就是把内层循环当成外层循环的循环体。当只有内层循环的循环条件为 jalse时,才会完全跳出内层循环,才可结束外层的当次循环,开始下一次的循环。
  3. 外层循环次数为 m 次,内层为 n 次,则内层循环体实际上需要执行 m*n 次

3.1 语法格式

for 循环变量初始化;循环条件;循环变量迭代{循环操作(语句)
}

对上面的语法格式说明:

  • for循环,四要素
  1. 循环变量的初始化
  2. 循环条件
  3. 循环操作,也就是循环体
  4. 循环变量迭代。
  • 细节:
  1. 循环条件是返回一个布尔值的表达式
  2. for循环的第二种使用方式:

for 循环判断条件{
// 循环语句
}

  1. 循环的第三种方式。
    for {
    // 循环语句
    }

写法等价于 for ; ; {} 。是一个无限循环,通常需要配合 break语句使用。

  1. golang 提供了 for-range的方式,可以方便遍历字符串和数组。
// 传统方式
var star string = "abcdedfg" 
for i :=0; i < len(str); i++ {fmt.printf("%c \n",str[i])  // 使用坐标
}// 使用 for - range方式var str string = "abcdefg"for index, val := range str {fmt.Printf("index = %d,val=%c \n", index, val)}
// 其中“index”获取字符串的下标,然后通过下标获取字符后交给val。进行打印/*index = 0,val=aindex = 1,val=bindex = 2,val=cindex = 3,val=dindex = 4,val=eindex = 5,val=findex = 6,val=g*/// 其实index和val就是定义的变量名for i, v := range str {fmt.Printf("index = %d,val=%c \n", i, v)}

四、break和continue跳转控制语句

两者区别:

  1. break:跳出循环。
  2. contunue结束本次循环,继续执行下一次循环。
http://www.lryc.cn/news/224124.html

相关文章:

  • 求2个字符串的最短编辑距离 java 实现
  • 单例模式 rust和java的实现
  • tqdm学习
  • Zigbee—网络层地址分配机制
  • [Matlab]基于LSTM+NSGA2的风光火力发电策略优化
  • 智安网络|探索人机交互的未来:自然语言处理的前沿技术
  • Could not load library libcudnn_cnn_train.so.8, 解决类似问题的思路与方法
  • 孙子兵法_00000
  • 代挂单页网址发布页+加盟代理+APP下载页源码
  • 计算机视觉驾驶行为识别应用简述
  • asp.net core configuration配置读取
  • windows上 Nexus 批量上传 maven依赖npm依赖
  • 已解决:Python Error: IndentationError: expected an indented block 问题
  • 汽车标定技术(六)--基于模型开发如何生成完整的A2L文件(2)
  • 普华永道于进博会发布全新升级的DSAI投资管理数字化平台
  • ssm+vue的高校学生课堂考勤系统设计与实现(有报告)。Javaee项目,ssm vue前后端分离项目。
  • 常用hivesql记录
  • C# OpenCvSharp 去除文字中的线条
  • 【树的存储结构,孩子链表】
  • 到蒙古包了,这边天气-9度 很冷
  • 淘宝天猫京东苏宁1688等平台关键词监控价格API接口(店铺商品价格监控API接口调用展示)
  • 案例:用户管理
  • AIGC:使用生成对抗网络GAN实现MINST手写数字图像生成
  • excel中超级表和普通表的相互转换
  • element中el-switch用法汇总(拓展:el-switch开关点击弹出确认框时,状态先改变,点击确认/取消失效,怎么解决?)
  • mysql之高阶语句
  • 视频编软件会声会影2024中文版功能介绍
  • IS-LM模型:从失衡到均衡的模拟
  • 【Linux】进程终止
  • 55.跳跃游戏