go語言學習(七、語言循環語句)

在不少實際業務中有許多具有規律性的重複操作,因此在程序中就需要重複執行某些語句 Go 語言提供了以下幾種類型循環處理語句

for循環

package main

import "fmt"

func main() {
	// for語言結構 for init; condition; post { }
	// 先對錶達式init 賦初值 就是 i:= 0
	// 判別表達式 condition 是真,則執行循環體內語句,然後執行 post,進入第二次循環
	// 再次判別表達式 condition 是假,終止for循環
	sum := 0
	for i := 0; i <= 10; i++ {
		sum += i
	}
	fmt.Println(sum)

	// for 循環的 range 格式可以對 slice、map、數組、字符串等進行迭代循環
	strings := []string{"犀利的大熊", "犀利的二熊"}
	stringsMap := map[string]string{
		"犀利": "大熊",
	}
	for key, value := range strings {
		println(key, value)
	}

	for key, value := range stringsMap {
		println(key, value)
	}

	// for循環類似於while格式
	// 輸出 10 11 12 13 14
	a := 10
	for a < 15 {
		fmt.Println(a)
		a++
	}

	// 循環嵌套
	var i, j int
	for i = 0; i < 10; i++ {
		for j = 10; j > 0; j-- {
			fmt.Println(i + j)
		}
	}
}


循環控制語句 循環控制語句可以控制循環體內語句的執行過程 GO 語言支持以下幾種循環控制語句

break

package main

import "fmt"

func main() {
	// break用法
	// 用於循環語句中跳出當前循環,並開始執行循環之後的語句
	a := 10
	for a < 20 {
		fmt.Println(a)
		a++
		if a > 15 {
			break //
		}
	}

	// 在 switch(開關語句)中在執行一條 case 後跳出語句的作用

	// 在多重循環中,可以用標號 label 標出想 break 的循環
	// 會退出標記的循環 退出兩層循環
	b, c := 0, 0
re:
	for b < 10 {
		for c < 10 {
			fmt.Println("b的值", b)
			fmt.Println("c的值", c)
			c++
			if c > 5 {
				break re
			}
		}
		b++
	}

	// 只退出當前循環 退出一層循環
	for b < 10 {
		for c < 10 {
			fmt.Println("b的值", b)
			fmt.Println("c的值", c)
			if c > 5 {
				break
			}
			c++
		}
		b++
	}
}

continue

package main

import "fmt"

func main() {
	// 類似於break 語句。但是 continue 不是跳出循環,而是跳過當前循環執行下一次循環語句
	// 跳出當前循環 進行下一次循環 continue 語句會觸發 for 增量語句的執行
	// 下面例子輸出10、11、12、14
	a := 10
	for a < 15 {
		if a == 13 {
			a++
			continue
		}
		fmt.Println(a)
		a++
	}

	// 在多重循環中,可以用標號 label 標出想 continue 的循環
	// 會跳過兩層循環
	b, c := 0, 0
re:
	for b < 4 {
		for c < 4 {
			if c == 1 {
				c++
				continue re
			}
			fmt.Println("b的值", b)
			fmt.Println("c的值", c)
			c++
		}
		fmt.Println("b的值", b)
		fmt.Println("c的值", c)
		b++
	}
}

goto
無條件地轉移到過程中指定的行 通常與條件語句配合使用 可用來實現條件轉移, 構成循環,跳出循環體等功能
在結構化程序設計中一般不主張使用 goto 語句, 以免造成程序流程的混亂,使理解和調試程序都產生困難 不做過多描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章