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

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

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

一、循環(huán)語句

1. 普通循環(huán)

1)語法

for init; condition; post { }

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

2)舉例

1.求1到10的數字之和。

package main

import "fmt"

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

執(zhí)行結果

1到10的數字之和為: 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的數字之和為:",count)
}

執(zhí)行結果

count小于10時自相加的值為

3.Golang中沒有while循環(huán),可以通過省略condition來實現:

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)")
	}
}

輸出結果

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

3. range循環(huán)

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

package main

import "fmt"

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

輸出結果

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

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

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

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

寫一個死循環(huán),變量a會一直加1,當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
		}
	}
}

輸出結果

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

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

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

下面是未使用標記,普通break中斷循環(huán),只會中斷當前層循環(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("內層循環(huán)j: %d\n", j)
			break  //不使用標記,則只會中斷該層循環(huán),不會中斷外層循環(huán)
		}
	}
}

輸出結果

外層循環(huán)i: 1
內層循環(huán)j: 11
外層循環(huán)i: 2
內層循環(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("內層循環(huán)j: %d\n", j)
			break re //使用標記,中斷外層循環(huán)
		}
	}
}

輸出結果

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

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

continue 是跳過當次循環(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í)行結果

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

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

3.goto-條件轉移

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

下面的代碼,當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í)行goto跳出
			goto LOOP
		}
		//a=3時不會執(zhí)行打印操作
		fmt.Printf("a 的值為 : %d\n", a)
	}
	LOOP:fmt.Printf("a等于3;執(zhí)行goto跳出!")
}

執(zhí)行結果

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

不建議使用goto,容易造成代碼結構混亂

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

相關文章

  • Go中使用gjson來操作JSON數據的實現

    Go中使用gjson來操作JSON數據的實現

    本文主要介紹了Go中使用gjson來操作JSON數據,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • Go?Wails開發(fā)桌面應用使用示例探索

    Go?Wails開發(fā)桌面應用使用示例探索

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

    Golang實現smtp郵件發(fā)送的示例代碼

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

    golang中json的omitempty使用操作

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

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

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

    Golang?template?包基本原理分析

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

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

    在Go語言中,net/http?包提供了一個強大且靈活的標準HTTP庫,那為什么還出現了像?Gin?這樣的,方便我們構建Web應用程序的第三方庫,下面就來和大家簡單分析一下
    2023-08-08
  • golang?Gin上傳文件返回前端及中間件實現示例

    golang?Gin上傳文件返回前端及中間件實現示例

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

    Go?模塊在下游服務抖動恢復后CPU占用無法恢復原因

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

    Golang單元測試中的技巧分享

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

最新評論