搜尋
首頁後端開發Golanggolang流程控制語句有哪些
golang流程控制語句有哪些Dec 28, 2022 pm 05:58 PM
golanggo語言流程控制

流程控制語句: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。

golang流程控制語句有哪些

本教學操作環境: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>可以是任何類型,val1val2可以是同類型的任意值,類型不限於常數或整數,或最終結果為相同類型的表達式。
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标志的哪一行上。

【相关推荐:Go视频教程编程教学

以上是golang流程控制語句有哪些的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
go语言为什么叫gogo语言为什么叫goNov 28, 2022 pm 06:19 PM

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

一文详解Go中的并发【20 张动图演示】一文详解Go中的并发【20 张动图演示】Sep 08, 2022 am 10:48 AM

Go语言中各种并发模式看起来是怎样的?下面本篇文章就通过20 张动图为你演示 Go 并发,希望对大家有所帮助!

【整理分享】一些GO面试题(附答案解析)【整理分享】一些GO面试题(附答案解析)Oct 25, 2022 am 10:45 AM

本篇文章给大家整理分享一些GO面试题集锦快答,希望对大家有所帮助!

go语言是编程语言吗go语言是编程语言吗Nov 28, 2022 pm 06:38 PM

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

python常见的流程控制结构有哪几种python常见的流程控制结构有哪几种Dec 12, 2023 pm 04:31 PM

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

什么是golang什么是golangNov 22, 2022 am 10:33 AM

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

go语言中goto怎么用go语言中goto怎么用Nov 23, 2022 pm 06:40 PM

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

golang流程控制语句有哪些golang流程控制语句有哪些Dec 28, 2022 pm 05:58 PM

流程控制语句: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。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
3 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SublimeText3 英文版

SublimeText3 英文版

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

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

SublimeText3 Mac版

SublimeText3 Mac版

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

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版