Go語言流程控制之goto語句與無限循環(huán)
goto語句
在Go編程語言中的goto語句提供無條件跳轉(zhuǎn)從跳轉(zhuǎn)到標(biāo)記聲明的功能。
注意:使用goto語句是高度勸阻的在任何編程語言,因?yàn)樗沟秒y以跟蹤程序的控制流程,使程序難以理解,難以修改。使用一個(gè)goto任何程序可以改寫,以便它不需要goto。
語法
轉(zhuǎn)到goto語句的語法如下:
goto label;
..
.
label: statement;
在這里,標(biāo)簽(label)可以是除去關(guān)鍵字任何純文本,它可以在任何地方設(shè)置在Go程序的上方或下方,以使用goto語句。
流程圖:
例子:
package main
import "fmt"
func main() {
/* local variable definition */
var a int = 10
/* do loop execution */
LOOP: for a < 20 {
if a == 15 {
/* skip the iteration */
a = a + 1
goto LOOP
}
fmt.Printf("value of a: %d\n", a)
a++
}
}
讓我們編譯和運(yùn)行上面的程序,這將產(chǎn)生以下結(jié)果:
value of a: 10 value of a: 11 value of a: 12 value of a: 13 value of a: 14 value of a: 16 value of a: 17 value of a: 18 value of a: 19
無限循環(huán)
一個(gè)循環(huán)變得無限循環(huán),如果條件永遠(yuǎn)不會為假。 for循環(huán)是傳統(tǒng)上用于此目的。由于沒有形成for循環(huán)是必需的三個(gè)表達(dá)式中,可以通過離開條件,使用空表達(dá)式或傳遞true給它形成一個(gè)死循環(huán)。
package main
import "fmt"
func main() {
for true {
fmt.Printf("This loop will run forever.\n");
}
}
當(dāng)條件表達(dá)式為不存在,它被假定為真。你可能有一個(gè)初始化和增量的表達(dá),但C程序員更普遍使用for(;;)結(jié)構(gòu)來表示一個(gè)無限循環(huán)。
注意:您可以通過按Ctrl+ C鍵終止無限循環(huán)。
相關(guān)文章
Golang反射獲取結(jié)構(gòu)體的值和修改值的代碼示例
這篇文章主要給大家介紹了golang反射獲取結(jié)構(gòu)體的值和修改值的代碼示例及演示效果,對我們的學(xué)習(xí)或工作有一定的幫助,感興趣的同學(xué)可以參考閱讀本文2023-08-08go語言生成隨機(jī)數(shù)和隨機(jī)字符串的實(shí)現(xiàn)方法
隨機(jī)數(shù)在很多時(shí)候都可以用到,尤其是登錄時(shí),本文就詳細(xì)的介紹一下go語言生成隨機(jī)數(shù)和隨機(jī)字符串的實(shí)現(xiàn)方法,具有一定的參考價(jià)值,感興趣的可以了解一下2021-12-12解決Golang小數(shù)float64在實(shí)際工程中加減乘除的精度問題
這篇文章主要介紹了解決Golang小數(shù)float64在實(shí)際工程中加減乘除的精度問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03Go語言使用Swiss Table實(shí)現(xiàn)更快的map
wiss Table 是一種高效的哈希表實(shí)現(xiàn),最初由 Google 在 C++ 中引入,后來也被其他語言(如 Rust)采用,下面我們看看如何使用 Swiss Table 的思想來實(shí)現(xiàn)一個(gè)更快的 Go map2025-03-03