流程控制语句
每个语言都会介绍到流程控制语句,Go语言同样具有这些。比如分支结构if-else、for循环、for-range循环、switch-case语句、goto语句、break语句以及continue语句。下面,博主来分别举例介绍使用方式。
if-else语句
基本来说,Go语言的if-else语句与Java语言基本一样。比如,我们这里根据值的大小,选择输出,代码如下所示:
func main() { var b int=9 if b>9{ fmt.Println("大于") }else if(b==9){ fmt.Println("等于") }else{ fmt.Println("小于") } }
for循环语句
与其他语言不同,Go语言只有for循环,没有while和do-while循环。而且其使用方法与C语言非常接近。下面,我们循环输出1-100个数,代码如下所示:
var i int for i=0;i<=100 ;i++ { fmt.Println(i) }
用for循环实现do-while
当然,如果想使用其他语言的do-while语句,我们可以将for循环写成这样:
var i int=0 for{ i++ if i>50{ break } }
用for循环实现while
同样的,我们也可以将for循环实现while循环的效果,代码如下所示:
i :=0 for i<=10{ fmt.Println(i) i++ }
break指定跳出循环
学过C语言的,应该也知道Go语言可以直接goto跳到指定代码。而for循环里面,我们也可以通过break语句直接决定终止哪个循环。比如:
var i,j int JumpLoop1: for i=1;i<100;i++{ JumpLoop2: for j=0;j<i;j++{ fmt.Println(j) if i>10{ break JumpLoop1 }else{ break JumpLoop2 } } }
感兴趣的可以删除else分别测试一下,看看最终效果。不过一般来说,如果不指定JumpLoop1,默认最内部的break只会跳出最内部的for循环。
continue语句
和其他语言一样,我们有时候也只需要跳出本次循环,所以Go语言同样给我们提供了continue语句。当然,continue语句后面同样可以跟标签,比如不跳出最内层的本次循环,而跳出最外层的本次循环,可以这样写:
var i, j int JumpTag: for i = 1; i < 100; i++ { for j = 0; j < i; j++ { fmt.Println(j) if i > 10 { continue JumpTag } } }
本段代码执行,到i=10,j=9之后,只会输出0。因为i>10时,循环都在j=0输出一次之后,跳出了最外层的循环,故不会有其他值。