最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

一、循環(huán)語句

1. 普通循環(huán)

1)語法

for init; condition; post { }

  • init(可選):給控制變量賦初值;
  • condition(可選):控制條件(不填的時候等于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:計算count小于10時自相加的值:

package main

import "fmt"

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

也可以省略;號:

package main

import "fmt"

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

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

count小于10時自相加的值為

3.Golang中沒有while循環(huán),可以通過省略condition來實現(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)

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

package main

import "fmt"

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

輸出結(jié)果

下標為:0 值為:a
下標為:1 值為:b
下標為:2 值為:c

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

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

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

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

package main

import "fmt"

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

輸出結(jié)果

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

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

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

下面是未使用標記,普通break中斷循環(huán),只會中斷當(dāng)前層循環(huán),不會中斷外層,外層打印的值始終為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  //不使用標記,則只會中斷該層循環(huán),不會中斷外層循環(huán)
		}
	}
}

輸出結(jié)果

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

下面是使用標記,指定中斷外層循環(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 //使用標記,中斷外層循環(huán)
		}
	}
}

輸出結(jié)果

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

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

continue 是跳過當(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時執(zhí)行continue跳過
			continue
		}
		//a=3時不會執(zhí)行打印操作
		fmt.Printf("a 的值為 : %d\n", a)
	}
}

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

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

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

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

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

下面的代碼,當(dāng)a=3時,會跳出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時不會執(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)語句和循環(huán)控制語句的文章就介紹到這了,更多相關(guān)go循環(huán)語句和循環(huán)控制語句內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Golang slice切片操作之切片的追加、刪除、插入等

    Golang slice切片操作之切片的追加、刪除、插入等

    這篇文章主要介紹了Golang slice切片操作之切片的追加、刪除、插入等,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • go?build失敗報方法undefined的解決過程

    go?build失敗報方法undefined的解決過程

    go build命令用于編譯我們指定的源碼文件或代碼包以及它們的依賴包,下面這篇文章主要給大家介紹了關(guān)于go?build失敗報方法undefined的解決過程,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2022-11-11
  • 淺析Golang中的內(nèi)存逃逸

    淺析Golang中的內(nèi)存逃逸

    內(nèi)存逃逸分析是go的編譯器在編譯期間,根據(jù)變量的類型和作用域,確定變量是堆上還是棧上。本文將通過示例淺析一下Golang中的內(nèi)存逃逸,需要的可以了解一下
    2022-10-10
  • Go語言map字典用法實例分析

    Go語言map字典用法實例分析

    這篇文章主要介紹了Go語言map字典用法,實例分析了map字典的使用技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-02-02
  • 最新評論

    嘉兴市| 察隅县| 巴林右旗| 卓尼县| 内江市| 平陆县| 贵溪市| 汶上县| 千阳县| 玉门市| 永仁县| 凤台县| 左云县| 曲水县| 乐至县| 融水| 理塘县| 隆安县| 东港市| 普兰店市| 云林县| 钦州市| 连山| 永春县| 昭苏县| 桃园县| 衡阳县| 南宫市| 准格尔旗| 宣武区| 宜城市| 石首市| 清涧县| 黄骅市| 九江市| 澳门| 鄂尔多斯市| 磐石市| 依兰县| 南通市| 临猗县|