欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Golang的循環(huán)語(yǔ)句和循環(huán)控制語(yǔ)句詳解

 更新時(shí)間:2021年11月10日 10:19:19   作者:曲鳥(niǎo)  
循環(huán)語(yǔ)句為了簡(jiǎn)化程序中有規(guī)律的重復(fù)性操作,需要用到循環(huán)語(yǔ)句,和其他大多數(shù)編程語(yǔ)言一樣,GO的循環(huán)語(yǔ)句有for循環(huán),不同的是沒(méi)有while循環(huán),而循環(huán)控制語(yǔ)句可以改變循環(huán)語(yǔ)句的執(zhí)行過(guò)程,下面給大家介紹下go循環(huán)語(yǔ)句和循環(huán)控制語(yǔ)句的相關(guān)知識(shí),一起看看吧

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

1. 普通循環(huán)

1)語(yǔ)法

for init; condition; post { }

  • init(可選):給控制變量賦初值;
  • condition(可選):控制條件(不填的時(shí)候等于while True);
  • post(可選):控制變量增量或減量;

2)舉例

1.求1到10的數(shù)字之和。

package main

import "fmt"

func main() {
	count := 0
	for i := 0; i <= 10; i++ {
		count += i
	}
	fmt.Println("1到10的數(shù)字之和為:",count)
}

執(zhí)行結(jié)果

1到10的數(shù)字之和為: 55

2.省略init和post:計(jì)算count小于10時(shí)自相加的值:

package main

import "fmt"

func main() {
	count := 1
	for ; count < 10; {
		count += count
	}
	fmt.Println("count小于10時(shí)自相加的值為:",count)
}

也可以省略;號(hào):

package main

import "fmt"

func main() {
	count := 1
	for count < 10{  //省略分號(hào)
		count += count
	}
	fmt.Println("1到10的數(shù)字之和為:",count)
}

執(zhí)行結(jié)果

count小于10時(shí)自相加的值為

3.Golang中沒(méi)有while循環(huán),可以通過(guò)省略condition來(lái)實(shí)現(xiàn):

package main

import "fmt"

func main() {

	for { //省略condition
		fmt.Println("死循環(huán)")
	}
}

2. 循環(huán)嵌套

package main

import "fmt"

func main() {

	for { //省略condition
		fmt.Println("死循環(huán)")
	}
}

輸出結(jié)果

(1到10的數(shù)字之和)x10: 550

3. range循環(huán)

用于對(duì)字符串、數(shù)組、切片等進(jìn)行迭代輸出元素:

package main

import "fmt"

func main() {
	strArray := []string{"a", "b","c"} //字符串?dāng)?shù)組
	for i,v := range strArray {
		fmt.Println(fmt.Sprintf("下標(biāo)為:%d 值為:%s", i,v))
	}
}

輸出結(jié)果

下標(biāo)為:0 值為:a
下標(biāo)為:1 值為:b
下標(biāo)為:2 值為:c

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

1.Break-中斷(跳出)循環(huán)

1)中斷(跳出)循環(huán)

寫(xiě)一個(gè)死循環(huán),變量a會(huì)一直加1,當(dāng)a的值大于3的時(shí)候則跳出循環(huán):

package main

import "fmt"

func main() {
	a := 1
	for  {
		a++
		fmt.Printf("a 的值為 : %d\n", a)
		if a > 3 {
			/* 使用 break 語(yǔ)句跳出循環(huán) */
			fmt.Printf("跳出循環(huán)")
			break
		}
	}
}

輸出結(jié)果

a 的值為 : 2
a 的值為 : 3
a 的值為 : 4
跳出循環(huán)

2)指定想中斷(跳出)的循環(huán)(嵌套循環(huán)中使用)

使用標(biāo)號(hào),可以指定想跳出的循環(huán)。

下面是未使用標(biāo)記,普通break中斷循環(huán),只會(huì)中斷當(dāng)前層循環(huán),不會(huì)中斷外層,外層打印的值始終為11:

package main

import "fmt"

func main() {
	for i := 1; i <= 2; i++ {
		fmt.Printf("外層循環(huán)i: %d\n", i)
		for j := 11; j <= 12; j++ {
			fmt.Printf("內(nèi)層循環(huán)j: %d\n", j)
			break  //不使用標(biāo)記,則只會(huì)中斷該層循環(huán),不會(huì)中斷外層循環(huán)
		}
	}
}

輸出結(jié)果

外層循環(huán)i: 1
內(nèi)層循環(huán)j: 11
外層循環(huán)i: 2
內(nèi)層循環(huán)j: 11

下面是使用標(biāo)記,指定中斷外層循環(huán),等于只循環(huán)執(zhí)行了一次:

package main

import "fmt"

func main() {
re:
	for i := 1; i <= 2; i++ {
		fmt.Printf("外層循環(huán)i: %d\n", i)
		for j := 11; j <= 12; j++ {
			fmt.Printf("內(nèi)層循環(huán)j: %d\n", j)
			break re //使用標(biāo)記,中斷外層循環(huán)
		}
	}
}

輸出結(jié)果

外層循環(huán)i: 1
內(nèi)層循環(huán)j: 11

2.Continue-跳過(guò)當(dāng)次循環(huán)

continue 是跳過(guò)當(dāng)次循環(huán)執(zhí)行后面的循環(huán),而非中斷循環(huán)

package main

import "fmt"

func main() {
	for a := 1; a < 5; a++ {
		if a == 3 { //a=3時(shí)執(zhí)行continue跳過(guò)
			continue
		}
		//a=3時(shí)不會(huì)執(zhí)行打印操作
		fmt.Printf("a 的值為 : %d\n", a)
	}
}

執(zhí)行結(jié)果

a 的值為 : 1
a 的值為 : 2
a 的值為 : 4

在循環(huán)嵌套時(shí),continue也可以指定跳過(guò)的循環(huán),用法與break一樣

3.goto-條件轉(zhuǎn)移

goto 可以直接轉(zhuǎn)移到指定代碼處進(jìn)行執(zhí)行。

下面的代碼,當(dāng)a=3時(shí),會(huì)跳出for循環(huán),直接執(zhí)行LOOP所在行的代碼:

package main

import "fmt"

func main() {
	for a := 1; a < 5; a++ {
		if a == 3 { //a等于3;執(zhí)行g(shù)oto跳出
			goto LOOP
		}
		//a=3時(shí)不會(huì)執(zhí)行打印操作
		fmt.Printf("a 的值為 : %d\n", a)
	}
	LOOP:fmt.Printf("a等于3;執(zhí)行g(shù)oto跳出!")
}

執(zhí)行結(jié)果

a 的值為 : 1
a 的值為 : 2
a等于3;執(zhí)行g(shù)oto跳出!

不建議使用goto,容易造成代碼結(jié)構(gòu)混亂

到此這篇關(guān)于Golang的循環(huán)語(yǔ)句和循環(huán)控制語(yǔ)句的文章就介紹到這了,更多相關(guān)go循環(huán)語(yǔ)句和循環(huán)控制語(yǔ)句內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Go中使用gjson來(lái)操作JSON數(shù)據(jù)的實(shí)現(xiàn)

    Go中使用gjson來(lái)操作JSON數(shù)據(jù)的實(shí)現(xiàn)

    本文主要介紹了Go中使用gjson來(lái)操作JSON數(shù)據(jù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • Go?Wails開(kāi)發(fā)桌面應(yīng)用使用示例探索

    Go?Wails開(kāi)發(fā)桌面應(yīng)用使用示例探索

    這篇文章主要為大家介紹了Go?Wails的使用示例探索,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-12-12
  • Golang實(shí)現(xiàn)smtp郵件發(fā)送的示例代碼

    Golang實(shí)現(xiàn)smtp郵件發(fā)送的示例代碼

    這篇文章主要為大家詳細(xì)介紹了Golang實(shí)現(xiàn)smtp郵件發(fā)送的相關(guān)知識(shí),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • golang中json的omitempty使用操作

    golang中json的omitempty使用操作

    這篇文章主要介紹了golang中json的omitempty使用操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-12-12
  • 詳解Go中如何進(jìn)行進(jìn)行內(nèi)存優(yōu)化和垃圾收集器管理

    詳解Go中如何進(jìn)行進(jìn)行內(nèi)存優(yōu)化和垃圾收集器管理

    這篇文章主要為大家詳細(xì)介紹了Go中如何進(jìn)行進(jìn)行內(nèi)存優(yōu)化和垃圾收集器管理,文中的示例代碼講解詳細(xì),具有一定的學(xué)習(xí)價(jià)值,感興趣的小伙伴可以了解下
    2023-11-11
  • Golang?template?包基本原理分析

    Golang?template?包基本原理分析

    這篇文章主要為大家介紹了Golang?template?包基本原理分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • 淺析Golang中Gin框架存在的必要性

    淺析Golang中Gin框架存在的必要性

    在Go語(yǔ)言中,net/http?包提供了一個(gè)強(qiáng)大且靈活的標(biāo)準(zhǔn)HTTP庫(kù),那為什么還出現(xiàn)了像?Gin?這樣的,方便我們構(gòu)建Web應(yīng)用程序的第三方庫(kù),下面就來(lái)和大家簡(jiǎn)單分析一下
    2023-08-08
  • golang?Gin上傳文件返回前端及中間件實(shí)現(xiàn)示例

    golang?Gin上傳文件返回前端及中間件實(shí)現(xiàn)示例

    這篇文章主要為大家介紹了golang?Gin上傳文件返回前端及中間件實(shí)現(xiàn)示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2022-04-04
  • Go?模塊在下游服務(wù)抖動(dòng)恢復(fù)后CPU占用無(wú)法恢復(fù)原因

    Go?模塊在下游服務(wù)抖動(dòng)恢復(fù)后CPU占用無(wú)法恢復(fù)原因

    這篇文章主要為大家介紹了Go?模塊在下游服務(wù)抖動(dòng)恢復(fù)后CPU占用無(wú)法恢復(fù)原因詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • Golang單元測(cè)試中的技巧分享

    Golang單元測(cè)試中的技巧分享

    這篇文章主要為大家詳細(xì)介紹了Golang進(jìn)行單元測(cè)試時(shí)的一些技巧和科技,文中的示例代碼講解詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴可以了解一下
    2023-03-03

最新評(píng)論