学习go语言编程之流程控制
Golang支持如下4种流程控制语句:
- 条件语句:if,else和else if
- 选择语句:switch,case和select
- 循环语句:for,range
- 跳转语句:goto
条件语句
示例代码:
a := 3
if a < 5 {
fmt.Println(a, "litter than 5")
} else {
fmt.Println(a, "not litter than 5")
}
关于条件语句,要注意以下几点:
- 条件语句不要使用小括号
()
将条件包含起来 - 不论语句体内有几条语句,花括号
{}
都是必须存在 - 左花括号
{
必须与if
或else
在同一行 - 在
if
之后,条件语句之前,可以添加变量初始化语句,使用分号;
分隔
选择语句
根据传入条件的不同,选择语句会执行不同的分支。
示例代码:
switch i {
case 0:
fmt.Println("0")
case 1:
fmt.Println("1")
case 2:
fallthrough
case 3:
fmt.Println("3")
case 4,5,6:
fmt.Println("4, 5, 6")
default:
fmt.Println("default")
}
i = 0,输出:0
i = 1,输出:1
i = 2,输出:3
i = 3,输出:3
i = 4,输出:4, 5, 6
i = 5,输出:4, 5, 6
i = 6,输出:4, 5, 6
i = 其他值,输出:default
有意思的是,switch后面的表达式都不是必须的,如下示例:
switch { // switch关键字之后没有表达式
case i >= 0 && i <= 3:
fmt.Println("0-3")
case i >= 4 && i <= 6:
fmt.Println("4-6")
}
关于选择语句,注意一下几点:
- 左花括号
{
必须与switch处于同一行 - 条件表达式不限制为常量或整数
- 单个case中,可以出现多个结果选项
- 不需要使用break语句退出case
- 只有在case中出现了关键字
fallthrough
,才会继续执行紧跟的下一个case - 可以不设置switch之后的条件表达式
循环语句
Golang中的循环语句只支持for
关键字。
示例代码:
sum := 0
for i = 0; i < 10; i++ {
sum += 1
}
无限循环:
sum := 0
for {
sum++
if sum > 10 {
break
}
}
在循环语句的条件表达式中支持多重赋值:
a := []int{1, 2, 3, 4, 5, 6}
for i, j := 0, len(a) - 1; i < j; i, j = i + 1, j - 1 {
a[i], a[j] = a[j], a[i]
}
关于循环语句,注意以下几点:
- 左花括号
{
必须与for在同一行 - 支持使用
continue
和break
来控制循环
跳转语句
goto语句的语义非常简单,就是跳转到本函数内的某个标签。
示例语句:
// 如下使用goto语句实现了类似循环的效果
func gotoSample() {
i := 0
HERE:
fmt.Println(i)
i++
if i < 5 {
goto HERE
}
}
输出:
0
1
2
3
4
学习go语言编程之流程控制的更多相关文章
- GO语言学习——Go语言基础之流程控制一
Go语言基础之流程控制 if else(分支结构) package main import "fmt" // if条件判断 func main(){ // age := 19 // ...
- C语言学习笔记(四) 流程控制
流程控制 流程控制,说通俗一点就是程序代码执行的顺序.不管对于哪门语言来说,流程控制都是很重要的一部分内容: 流程控制的分类,可以分为三大类: 1.顺序 这个很好理解,顺序执行就是代码从上往下一行行的 ...
- Go语言基础之流程控制
Go语言基础之流程控制 流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的“经脉”. Go语言中最常用额流程控制有if和for,而switch和goto主要是为了简化代 ...
- Go语言 数据类型,流程控制
Go语言 数据类型,流程控制 人生苦短,Let's Go ! package main // 必须要有一个main包 import "fmt" func main() { fmt. ...
- Java编程基础——流程控制
Java编程基础——流程控制 摘要:本文主要介绍Java编程中的流程控制语句. 分类 流程控制指的是在程序运行的过程中控制程序运行走向的方式.主要分为以下三种: 顺序结构:从上到下依次执行每条语句操作 ...
- GO学习-(7) Go语言基础之流程控制
流程控制是每种编程语言控制逻辑走向和执行次序的重要部分,流程控制可以说是一门语言的"经脉". Go语言中最常用的流程控制有if和for,而switch和goto主要是为了简化代码. ...
- R语言学习4:函数,流程控制,数据框重塑
本系列是一个新的系列,在此系列中,我将和大家共同学习R语言.由于我对R语言的了解也甚少,所以本系列更多以一个学习者的视角来完成. 参考教材:<R语言实战>第二版(Robert I.Kaba ...
- c语言学习笔记(4)——流程控制
一.什么是流程控制 程序代码执行的顺序 流程控制分类 顺序执行 选择执行 定义 有选择的执行某些代码 分类 if switch 循环执行 定义 某些代码会被重复执行 分类 for while do w ...
- 如何轻松学习C语言编程!
C语言是面向过程的,而C++是面向对象的 C和C++的区别: C是一个结构化语言,它的重点在于算法和数据结构.C程序的设计首要考虑的是如何通过一个过程,对输入(或环境条件)进行运算处理得到输出(或实现 ...
- python 学习之 基础篇三 流程控制
前言: 一. python中有严格的格式缩进,因为其在语法中摒弃了“{}”来包含代码块,使用严格的缩进来体现代码层次所以在编写代码的时候项目组要严格的统一器缩进语法,一个tab按键设置为四个空格来缩进 ...
随机推荐
- [转帖]s3fs
https://github.com/s3fs-fuse/s3fs-fuse s3fs allows Linux, macOS, and FreeBSD to mount an S3 bucket v ...
- [转帖]jmeter之发送jdbc请求--06篇
1.setup线程组中新建一个JDBC Connection Configuration配置元件 2.设置配置信息 Database URL:jdbc:mysql://127.0.0.1:3306/v ...
- [转帖]Redash -- Redash部署安装docker版
向导 官网 1.环境准备 1.1 安装docker和docker-compose 1.2 安装nodejs和npm 2.安装Redash 官网 主页 Developer Guide github 讨论 ...
- [转帖]如何在 Linux 中使用ss命令监控网络连接
https://zhuanlan.zhihu.com/p/99421574 ss命令是用于在Linux系统上显示与网络套接字相关的信息的工具. 该工具显示netstat命令的更多详细信息,该命令用于显 ...
- 【转帖】AMD EPYC——CPU命名规则
AMD的三代服务器CPU都属于7000系列大锅,那么您如何知道要购买的产品呢? 只要看一下右边的最后一个数字,数字1代表第一代那不勒斯EPYC,数字2代表罗马型号,数字3代表新米兰产品. 始终从右到左 ...
- [转帖]BIS出口管制新规说明会,进一步明确十大问题
https://zhuanlan.zhihu.com/p/573765504 10月13日晚9点,BIS就出口管制新规举行电话会议简报,出口执法助理副部长Thea Kendler主持会议.小白总结要点 ...
- vscode中快速声明数据类型
如何快速声明数据类型 上面这张图 let obj1= reactive({ listArr: [], backArr: [{name:'张三',age:10, info:'本科'}], age: 10 ...
- bootstrap ----- bootstrap table表格参数
表格参数: 名称 标签 类型 默认 描述 - data-toggle String 'table' 不用写 JavaScript 直接启用表格. classes data-classes String ...
- 安装Visual Studio的详细流程
本文介绍Visual Studio 2022软件Community(社区版)的下载.安装.运行与使用方法. 首先需要提一句,本文介绍的是Visual Studio 2022软件的下载:而其它版 ...
- iphone(ios)不同设备的内存和游戏不闪退峰值
ios内存限制 不同内存的苹果机型上(1G,2G,3G,4G-),游戏内存的峰值一般最高多少能保证不闪退? 一般来讲最保险的就是不超过机器总内存的50%,具体每个机型的内存限制在列出在下面. 原贴:& ...