Go循环语句「没有while循环的Go还剩下什么」

学了Go才知道,Go基础的一部分内容,与其它语言,真的有些差异,这下连 while 都给取消了

For的一般形式

package main

import "fmt"

func main(){

	sum := 0
	for i := 1; i < 5; i++ {

		sum = i + sum
	}

	fmt.Println("sum的值为:", sum)
}
/*
输出:
	sum的值为: 10
*/

在上面for的后面 ; ; 里的内容,三者都可以忽略不写


For的 「for ; ; 」形式

package main

import "fmt"

func main()  {

	for ; ; {
		fmt.Println("我是无限循环")
	}
}
/*
输出:
	我是无限循环
	我是无限循环
	我是无限循环
	...
*/

相当于 while 的 For

package main

import "fmt"

func main(){

	var A, B int = 520, 1314

	for A < B {
		fmt.Println("我是正确的")
		B--
		if A >= B {
			break
		}
	}
	fmt.Println("程序停止了!!!")

/*
输出:
	我是正确的
	我是正确的
	...
	程序停止了!!!
*/

在这里,for的格式

for condition{} // condition为 true 运行循环,为 false,不进入循环,这个相当于 while(condition)
for {} // 相当于 while(true)

循环控制语句

break
package main

import "fmt"

func main(){

	var A, B int = 520, 1314

	for  {
		if A + B > 10000 {
			break
		}
		A++
		B++
		fmt.Println("A + B = ", A + B)
	}

	fmt.Println("循环停止了!!!")
}
/*
输出:
	A + B =  1836
	A + B =  1838
	A + B =  1840
	...
	A + B =  10000
	A + B =  10002
	循环停止了!!!
*/

在循环中使用 break, 当达到 break的条件的时候,直接终止循环,执行循环语句下面的内容

continue
package main

import "fmt"

func main()  {

	i := 0
	for ; i < 10 ; i++  {

		if i == 5 {
			continue
		}
		fmt.Println("i = ", i)
	}

	fmt.Println("循环停止了!!")
}

/*
输出:
	i =  0
	i =  1
	i =  2
	i =  3
	i =  4
	i =  6
	i =  7
	i =  8
	i =  9
	循环停止了!!
*/

上面 i 的输出,少了5,因为当 i = 5时,语句跳出了这次循环,不再执行 continue下面的内容
continue 只跳出本次循环,而不是终止循环

goto
package main

import "fmt"

func main(){

	i := 0
	LOOP:
		for ; i < 10 ;   {
			i++
			if i == 5 {
				goto LOOP
			}
			fmt.Println("i = ", i)
		}

	fmt.Println("循环停止了!!")
}
/*
输出:
	i =  1
	i =  2
	i =  3
	i =  4
	i =  6
	i =  7
	i =  8
	i =  9
	i =  10
	循环停止了!!
*/

在这里,当 i = 5时, 循环跳转到标识的地方,也就是 LOOP这里,从这个地方执行
在这使用,效果跟 continue类似,但它又不是 continue,只是刚好我写的差不多而已

LOOP只是一个标记,随便起啥名都行,下面的 goto LOOP,是跳转到LOOP标识的地方

格式

label:
	内容

goto lebel

goto 在这里讲的真是差强人意,唉
等之后,表达能力上升,再来改

欢迎大家关注下个人的「公众号」:独醉贪欢

猜你喜欢

转载自blog.csdn.net/weixin_41640994/article/details/105216064