真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

golang流程控制語(yǔ)句怎么使用

本文小編為大家詳細(xì)介紹“golang流程控制語(yǔ)句怎么使用”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“golang流程控制語(yǔ)句怎么使用”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來(lái)學(xué)習(xí)新知識(shí)吧。

創(chuàng)新互聯(lián)是一家專注于網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站建設(shè)與策劃設(shè)計(jì),鹽池網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十余年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:鹽池等地區(qū)。鹽池做網(wǎng)站價(jià)格咨詢:13518219792

流程控制語(yǔ)句:1、if語(yǔ)句,由一個(gè)布爾表達(dá)式后緊跟一個(gè)或多個(gè)語(yǔ)句組成;2、“if…else”語(yǔ)句,else中的表達(dá)式在布爾表達(dá)式為false時(shí)執(zhí)行;3、switch語(yǔ)句,用于基于不同條件執(zhí)行不同動(dòng)作;4、select語(yǔ)句;5、for循環(huán)語(yǔ)句,語(yǔ)法“for k,v := range oldmap{newmap[k]=v}”;6、循環(huán)控制語(yǔ)句break、continue、goto。

1、條件分支語(yǔ)句

和c語(yǔ)言類似,相關(guān)的條件語(yǔ)句如下表所示:

語(yǔ)句描述
if 語(yǔ)句if 語(yǔ)句 由一個(gè)布爾表達(dá)式后緊跟一個(gè)或多個(gè)語(yǔ)句組成。
if…else 語(yǔ)句if 語(yǔ)句 后可以使用可選的 else 語(yǔ)句, else 語(yǔ)句中的表達(dá)式在布爾表達(dá)式為 false 時(shí)執(zhí)行。
switch 語(yǔ)句switch 語(yǔ)句用于基于不同條件執(zhí)行不同動(dòng)作。
select 語(yǔ)句select 語(yǔ)句類似于 switch 語(yǔ)句,但是select會(huì)隨機(jī)執(zhí)行一個(gè)可運(yùn)行的case。如果沒(méi)有case可運(yùn)行,它將阻塞,直到有case可運(yùn)行。
  • if語(yǔ)句
    語(yǔ)法如下:

if 布爾表達(dá)式 {
   /* 在布爾表達(dá)式為 true 時(shí)執(zhí)行 */
}

  • if-else語(yǔ)句

if 布爾表達(dá)式 {
   /* 在布爾表達(dá)式為 true 時(shí)執(zhí)行 */
} else {
	/* 在布爾表達(dá)式為 false 時(shí)執(zhí)行 */
}

  • switch語(yǔ)句
    其中的變量v可以是任何類型,val1val2可以是同類型的任意值,類型不局限為常量或者整數(shù),或者最終結(jié)果為相同類型的表達(dá)式。

switch v {
    case val1:
        ...
    case val2:
        ...
    default:
        ...
}

  • select語(yǔ)句
    select 是 Go 中的一個(gè)控制結(jié)構(gòu),類似于用于通信的 switch 語(yǔ)句。每個(gè) case 必須是一個(gè)通信操作,要么是發(fā)送要么是接收。它將會(huì)隨機(jī)執(zhí)行一個(gè)可運(yùn)行的 case。如果沒(méi)有 case 可運(yùn)行,它將阻塞,直到有 case 可運(yùn)行。一個(gè)默認(rèn)的子句應(yīng)該總是可運(yùn)行的。

select {
    case communication clause  :
       statement(s);      
    case communication clause  :
       statement(s);
    /* 你可以定義任意數(shù)量的 case */
    default : /* 可選 */
       statement(s);
}

注意:

  • 每個(gè)case必須都是一個(gè)通信

  • 所有channel表達(dá)式都會(huì)被求值,所有被發(fā)送的表達(dá)式都會(huì)被求值

  • 如果任意某一個(gè)通信都可以,它就執(zhí)行,其他就忽略

  • 如果有多個(gè)case都可以運(yùn)行,select就會(huì)隨機(jī)挑選一個(gè)來(lái)執(zhí)行。

  • 如果沒(méi)有一個(gè)case可以被運(yùn)行:如果有default子句,就執(zhí)行default子句,select將被阻塞,直到某個(gè)通信可以運(yùn)行,從而避免饑餓問(wèn)題。

2、循環(huán)語(yǔ)句

2.1 循環(huán)處理語(yǔ)句

與多數(shù)語(yǔ)言不同的是,Go語(yǔ)言中的循環(huán)語(yǔ)句只支持 for 關(guān)鍵字,而不支持 while 和 do-while 結(jié)構(gòu),關(guān)鍵字 for 的基本使用方法與C語(yǔ)言和 C++ 中非常接近。

go中時(shí)使用for實(shí)現(xiàn)循環(huán)的,共有三種形式:


語(yǔ)法
和c語(yǔ)言中的for相同for init; condition; post {}
和c語(yǔ)言中的while相同for condition{}
和c語(yǔ)言中的for(;;)相同for{}

除此以外,for循環(huán)還可以直接使用range對(duì)slice、map、數(shù)組以及字符串等進(jìn)行迭代循環(huán),格式如下:

for key, value := range oldmap {
	newmap[key] = value
}

2.2 循環(huán)控制語(yǔ)句

控制語(yǔ)句詳解
break中斷跳出循環(huán)或者switch語(yǔ)句
continue跳過(guò)當(dāng)前循環(huán)的剩余語(yǔ)句,然后繼續(xù)下一輪循環(huán)
goto語(yǔ)句將控制轉(zhuǎn)移到被標(biāo)記的語(yǔ)句

1、break

break主要用于循環(huán)語(yǔ)句跳出循環(huán),和c語(yǔ)言中的使用方式是相同的。且在多重循環(huán)的時(shí)候還可以使用label標(biāo)出想要break的循環(huán)。
實(shí)例代碼如下:

a := 0
for a<5 {
	fmt.Printf("%d\n", a)
	a++
	if a==2 {
		break;
	}
}
/* output
0
1
2
*/

2、continue

Go 語(yǔ)言的 continue 語(yǔ)句 有點(diǎn)像 break 語(yǔ)句。但是 continue 不是跳出循環(huán),而是跳過(guò)當(dāng)前循環(huán)執(zhí)行下一次循環(huán)語(yǔ)句。在多重循環(huán)中,可以用標(biāo)號(hào) label 標(biāo)出想 continue 的循環(huán)。
實(shí)例代碼如下:

    // 不使用標(biāo)記
    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
*/

    // 使用標(biāo)記
    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語(yǔ)句主要是無(wú)條件轉(zhuǎn)移到過(guò)程中指定的行。goto語(yǔ)句通常和條件語(yǔ)句配合使用,可用來(lái)實(shí)現(xiàn)條件轉(zhuǎn)移、構(gòu)成循環(huán)以及跳出循環(huán)體等功能。但是并不主張使用goto語(yǔ)句,以免造成程序流程混亂。
示例代碼如下:

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就是一個(gè)標(biāo)簽,當(dāng)運(yùn)行到goto語(yǔ)句的時(shí)候,此時(shí)執(zhí)行流就會(huì)跳轉(zhuǎn)到LOOP標(biāo)志的哪一行上。

讀到這里,這篇“golang流程控制語(yǔ)句怎么使用”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過(guò)才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


文章題目:golang流程控制語(yǔ)句怎么使用
當(dāng)前URL:http://weahome.cn/article/psppoe.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部