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 语句, 以免造成程序流程的混乱,使理解和调试程序都产生困难 不做过多描述

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