目录
1.goto
goto关键字是我觉得真正的具有跳转功能的关键字,也是go中的一个特色,通过goto关键字可以直接由goto当前所在位置跳转到end位置,在关键字goto xxx和xxx之间的程序不会被执行。
需要注意的是如果xxx出现在goto之前则会导致死循环。
//goto跳转,直接由goto当前所在处跳转到end处,开始执行end之后的代码
fmt.Println("aaaaaaaaaaaa")
goto End //end是用户自定义的标签
fmt.Println("bbbbbbbbbbbbb")
End:
fmt.Println("ccccccccccccc")
结果为:bbbbbbbbbbb不会被打印。
2.for循环
go中的for循环与Java中的for循环语法格式相比少了圆括号,其他基本相同。例如:
sum := 0
for i := 1; i < 11; i++ {
sum = sum + i
fmt.Println(sum)
}
这段代码会求1到10的累加和,for循环中初始化i=1,i:=1在这里为自动推导,i<11为循环条件,条件不满足就会跳出循环,i++为i自增。
3.range关键字
range关键字通常与for关键字结合使用,range在每一次循环中会默认返回两个值,第一个是元素下标,第二个是元素值,所以使用时需要使用两个变量来接受,如果只需要两个值中的某一个值,则可以结合匿名变量使用。
这里给出了使用range和不使用range的程序对比。
str := "tsh"
for i := 0; i < len(str); i++ {
fmt.Println(str[i])
}
//range默认返回两个值,一个是元素下标,一个是元素值
for i, data := range str {
fmt.Println(i, data)
}
4.if关键字
if关键字的语法格式与Java中的区别也是在于条件不需要圆括号括起。例如:
if score == 700 {
fmt.Println("true")
} else if score == 699 {
fmt.Println(score)
}