学了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 在这里讲的真是差强人意,唉 等之后,表达能力上升,在来改
欢迎大家关注下个人的「公众号」:独醉贪欢
有疑问加站长微信联系(非本文作者)