go语言for循环

go语言中for循环条件返回true时循环体不停的进行循环,直到条件表达式返回false的时候退出循环

//条件表达式返回true的时候循环不听的进行循环,知道条件表达式返回false时自动退出循环
func main() {
	for i := 0; i < 10; i++ {
		fmt.Println(i)
	}

}

条件表达式之前定义条件

func main() {
	i := 0
	for ; i < 10; i++ { //这里没有在条件表达式中进行初始化.但是表达式中的分号要有.
		fmt.Println(i)
	}

}

循环的出十余家和结束语句都省略

func main() { //for循环的初始语句和结束语句都可以省略
	i := 0
	for i < 10 {
		fmt.Println(i)
		i++
	}
}

//说明一下.虽然在初始语句和结束语句中都省略了内容,但是最终结果不变.因为被省略的是逻辑判断,实际的累积和初始化定义都是要有的.

无限循环

func main() { //无线循环.不会主动退出循环体
	i := 0
	for {
		fmt.Println(i)
		i++
	}
}

for range 循环

1.数组,切片,字符串,返回索引和值.
2.map返回键和值
3.通道(channel)只返回通道内的值.

switch语句进行多条件判断

func main() { //无线循环.不会主动退出循环体
	i := 3
	switch i { //指定条件比较内容,与下面case后面的值进行比较.如果相等,对应的输出case后面的结果.

	case 1:
		fmt.Println("大拇指")
	case 2:
		fmt.Println("食指")
	case 3:
		fmt.Println("中指")
	case 4:
		fmt.Println("无名指")
	case 5:
		fmt.Println("小拇指")

	}
}

swich进行多个值比较

func main() { //无线循环.不会主动退出循环体
	switch n := 7; n { //这里的意思是声明并定义n:=7,然后将n传入下面的case中进行比较.
	case 1, 2, 3, 4: //多个值进行比较的时候可以直接使用逗号进行分隔
		fmt.Println("A")
	case 5, 6, 7, 8:
		fmt.Println("B")
	default: //如果所有case都不匹配那么走defaut分支.每个switch只能有一个default
		fmt.Println("C")

	}
}

case分支使用表达式

func main() { //无线循环.不会主动退出循环体
	age := 30
	switch { //如果在case中进行条件判断的话那么switch就不需要再进行条件的添加了
	case age < 25:
		fmt.Println("好好学习")
	case 25 <= age && age <= 60:
		fmt.Println("好好工作")
	case age > 60 && age <= 80:
		fmt.Println("好好活着")
	default:
		fmt.Println("活着真好")
	}
}

fallthrough语法,可以执行满足case条件的下一个case语句.无论下一个case是否满足条件,

func main() { //无线循环.不会主动退出循环体
	age := 30
	switch { //如果在case中进行条件判断的话那么switch就不需要再进行条件的添加了
	case age < 25:
		fmt.Println("好好学习")
	case 25 <= age && age <= 60:
		fmt.Println("好好工作")
		fallthrough
	case age > 60 && age <= 80:
		fmt.Println("好好活着")
	default:
		fmt.Println("活着真好")
	}
}

使用break跳出循环体

func main() {
BREAKLOOP: //可以指定一个循环开始的标志位,在跳出循环的时候可以跳出整个标志位的循环体.
	for i := 0; i < 10; i++ {
		for j := 0; j < 10; j++ {
			if j == 2 {
				break BREAKLOOP //跳出之前定义好的标志位.剩余标志位之内的所有循环都不会继续执行.
			}
			fmt.Printf("%v-%v\n", i, j)
		}
	}

}

使用continue进行结束本次循环并开始下一次循环

func main() {
fooloop1:
	for i := 0; i < 5; i++ {
		//fooloop2:
		for j := 0; j < 5; j++ {
			if i == 2 && j == 2 {
				continue fooloop1 //表示跳出本次fooloop1循环,继续执行下次fooloop1循环.同样可以指定跳转到foolloop2的位置进行fooloop2的下一次循环.
			}
			fmt.Printf("%v-%v\n", i, j)
		}
	}

}

//continue表示跳出本次循环,执行下一次循环.可以指定标志位进行跳出位置.

作业打印99乘法表

func main() {

	for q := 1; q <= 9; q++ {
		for w := 1; w <= 9; w++ {
			if w == 9 {
				fmt.Printf("%v*%v=%v\n", q, w, q*w)
			} else if q < w {
				fmt.Printf("%v*%v=%v ", q, w, q*w)
			}

			continue
		}
	}
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值