流程控制語句:1、if語句,由一個布林表達式後緊接一個或多個語句組成;2、「if…else」語句,else中的表達式在布林表達式為false時執行;3、switch語句,用於基於不同條件執行不同動作;4、select語句;5、for循環語句,語法「for k,v := range oldmap{newmap[k]=v}」;6、迴圈控制語句break、continue、goto。
本教學操作環境:windows7系統、GO 1.18版本、Dell G3電腦。
下面我們來了解關於golang流程控制語句的基本內容。
1、條件分支語句
和c語言類似,相關的條件語句如下表所示:
語句 | 描述 |
---|---|
#if 語句 | if 語句由一個布林表達式後緊跟著一個或多個語句組成。 |
if…else 語句 | if 語句 後可以使用可選的 else 語句, else 語句中的表達式在布林表達式為 false 時執行。 |
switch 語句 | switch 語句用於基於不同條件執行不同動作。 |
select 語句 | select 語句類似於 switch 語句,但是select會隨機執行一個可運行的case。如果沒有case可運行,它將阻塞,直到有case可運行。 |
- if語句
語法如下:
if 布尔表达式 { /* 在布尔表达式为 true 时执行 */ }
- if-else語句
if 布尔表达式 { /* 在布尔表达式为 true 时执行 */ } else { /* 在布尔表达式为 false 时执行 */ }
- switch語句
其中的變數<span class="hljs-attribute">v</span>
可以是任何類型,val1
和val2
可以是同類型的任意值,類型不限於常數或整數,或最終結果為相同類型的表達式。
switch v { case val1: ... case val2: ... default: ... }
- select語句
select 是 Go 中的一個控制結構,類似於用於通訊的 switch 語句。每個 case 必須是一個通訊操作,要嘛是發送要嘛是接收。它將隨機執行一個可運行的 case。如果沒有 case 可運行,它將阻塞,直到有 case 可運行。一個預設的子句應該總是可運行的。
select { case communication clause : statement(s); case communication clause : statement(s); /* 你可以定义任意数量的 case */ default : /* 可选 */ statement(s); }
注意:
- 每個case必須都是一個通訊
- 所有channel表達式都會被求值,所有被傳送的表達式都會被求值
- 如果任意某一個通訊都可以,它就執行,其他就忽略
- 如果有多個case都可以運行,select就會隨機挑選一個來執行。
- 如果沒有一個case可以被執行:如果有default子句,就執行default子句,select將被阻塞,直到某個通訊可以運行,從而避免飢餓問題。
2、循環語句
#2.1 迴圈處理語句
與多數語言不同的是,Go語言中的循環語句只支援for 關鍵字,而不支援while 和do-while 結構,關鍵字for 的基本使用方法與C語言和 C 中非常接近。
go中時使用for實現循環的,共有三種形式:
語法 | |
---|---|
#和c語言中的for相同 | for init; condition; post {} |
和c語言中的while相同 | for condition{} |
和c語言中的<span class="hljs-function"><span class="hljs-title">for</span><span class="hljs-params">(;;) </span></span> 相同 |
for{} |
#除此之外,for迴圈還可以直接使用range對slice、map、陣列以及字串等進行迭代循環,格式如下:
for key, value := range oldmap { newmap[key] = value }
#2.2 循環控制語句
控制語句 | 詳解 |
---|---|
#break | 中斷跳出迴圈或switch語句 |
continue | 跳過目前迴圈的剩餘語句,然後繼續下一輪迴圈 |
goto語句 | 將控制權轉移到被標記的語句 |
1、break
break主要用于循环语句跳出循环,和c语言中的使用方式是相同的。且在多重循环的时候还可以使用label标出想要break的循环。
实例代码如下:
a := 0 for a<5 { fmt.Printf("%d\n", a) a++ if a==2 { break; } } /* output 0 1 2 */
2、continue
Go 语言的 continue 语句 有点像 break 语句。但是 continue 不是跳出循环,而是跳过当前循环执行下一次循环语句。在多重循环中,可以用标号 label 标出想 continue 的循环。
实例代码如下:
// 不使用标记 fmt.Println("---- continue ---- ") for i := 1; i <= 3; i++ { fmt.Printf("i: %d\n", i) for i2 := 11; i2 <= 13; i2++ { fmt.Printf("i2: %d\n", i2) continue } } /* output i: 1 i2: 11 i2: 12 i2: 13 i: 2 i2: 11 i2: 12 i2: 13 i: 3 i2: 11 i2: 12 i2: 13 */ // 使用标记 fmt.Println("---- continue label ----") re: for i := 1; i <= 3; i++ { fmt.Printf("i: %d", i) for i2 := 11; i2 <= 13; i2++ { fmt.Printf("i2: %d\n", i2) continue re } } /* output i: 1 i2: 11 i: 2 i2: 11 i: 3 i2: 11 */
3、goto
goto语句主要是无条件转移到过程中指定的行。goto语句通常和条件语句配合使用,可用来实现条件转移、构成循环以及跳出循环体等功能。但是并不主张使用goto语句,以免造成程序流程混乱。
示例代码如下:
var a int = 0 LOOP: for a<5 { if a == 2 { a = a+1 goto LOOP } fmt.Printf("%d\n", a) a++ } /* output: 0 1 2 3 4 */
以上代码中的LOOP就是一个标签,当运行到goto语句的时候,此时执行流就会跳转到LOOP标志的哪一行上。
以上是golang流程控制語句有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

go语言叫go的原因:想表达这门语言的运行速度、开发速度、学习速度(develop)都像gopher一样快。gopher是一种生活在加拿大的小动物,go的吉祥物就是这个小动物,它的中文名叫做囊地鼠,它们最大的特点就是挖洞速度特别快,当然可能不止是挖洞啦。

go语言是编程语言。go语言又称Golang,是Google开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言。Go语言的推出,旨在不损失应用程序性能的情况下降低代码的复杂性,具有“部署简单、并发性好、语言设计良好、执行性能好”等优势。

python常见的流程控制结构有三种,分别是顺序结构、选择结构和循环结构等。详细介绍:1、顺序结构,这是程序中最简单的结构,按照代码的先后顺序,从上到下依次执行;2、选择结构,这种结构可以根据一定的条件判断,选择执行不同的代码块,在Python中,通常使用“if-elif-else”语句来实现选择结构;3、循环结构,可以重复执行一段代码,直到满足某个条件时停止等等。

golang是一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言;它可以在不损失应用程序性能的情况下极大的降低代码的复杂性,还可以发挥多核处理器同步多工的优点,并可解决面向对象程序设计的麻烦,并帮助程序设计师处理琐碎但重要的内存管理问题。

在go语言中,goto语句用于无条件跳转,可以无条件地转移到程序中指定的行;它通过标签进行代码间的无条件跳转。goto后接一个标签,这个标签的意义是告诉Go程序下一步要执行哪行的代码,语法“goto 标签;... ...标签: 表达式;”。goto打破原有代码执行顺序,直接跳转到指定行执行代码;goto语句通常与条件语句配合使用,可用来实现条件转移、构成循环、跳出循环体等功能。

流程控制语句:1、if语句,由一个布尔表达式后紧跟一个或多个语句组成;2、“if…else”语句,else中的表达式在布尔表达式为false时执行;3、switch语句,用于基于不同条件执行不同动作;4、select语句;5、for循环语句,语法“for k,v := range oldmap{newmap[k]=v}”;6、循环控制语句break、continue、goto。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

SublimeText3漢化版
中文版,非常好用

WebStorm Mac版
好用的JavaScript開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

SublimeText3 Linux新版
SublimeText3 Linux最新版