1、循环语句
在Go语言当中有两种循环语句,一种是for循环,另一种是range迭代。
首先for循环的语法格式:
for 初始化条件; 判断条件; 改变条件 {
...
}
如果条件满足,那么程序就会执行for里面的语句,只有当条件不满足时,程序就会跳出for循环。
举例如明:
(1)、计算1 + 2 + 3 + ... + 100的结果,那么利用for循环,可以这样写:
sum := 0
for i := 1; i <= 100; i++ {
sum += i
}
fmt.Println("sum = ", sum)
首先定义sum变量用于存储计算值,该for循环的初始化为变量i为1,判断条件就是i <= 100,改变条件就是每次i都加1,for循环的内容就是每次i的值都与sum相加并赋值给sum,结果为:
sum = 5050
(2)、计算2 + 4 + 6 + ... + 100的结果,即是计算100以内包含100的偶数之和:
sum := 0
for i := 2; i <= 100; i++ {
if i%2 == 0 {
sum += i
}
}
fmt.Println("sum = ", sum)
程序跟例子1差不多,只不过加了一个判断条件,即i要能2整除,也即是偶数,才与sum相加并赋值给sum,结果为:
sum = 2550
下面再来看看range迭代的语法格式:
for 下标, 值 := range 被迭代内容 {
...
}
利用range迭代会返回两个值,第1个值是被迭代内容的下标,第2个值是当前下标所对应的内容。当然如果值不写的或者写“_”,那么这种方式都会将值的丢弃,即:
for 下标 := range 被迭代内容 {
...
}
for 下标, _ := range 被迭代内容 {
...
}
// 以上两种方式都是会将值的内容丢弃
举例说明:
(1)、打印字符串“jgyw”中的每个字符,即:
for i, item := range "jgyw" {
fmt.Printf("str[%d] = %c\\n", i, item)
}
输出结果为:
str[0] = j
str[1] = g
str[2] = y
str[3] = w
range迭代器在数组、切片会经常用到,这个到以后会讲解到。
2、跳转语句
在其它编程语句当中跳转语句一般是break和continue,那么这两个语句同样也在Go语言当中有,同时在Go语言当中还有一个goto的跳转语句。
首先讲解break和continue语句:
(1)、使用范围:
- break语句只能在switch语句、循环语句当中
- continue语句只能在循环语句当中
(2)、作用:
- break语句是跳出switch语句或者跳出循环语句
- continue语句跳过这次循环,进入下一次循环
举例说明:
for i := 0; i < 5; i++ {
if i == 3 {
break
}
fmt.Println("break中i = ", i)
}
for i := 0; i < 5; i++ {
if i == 3 {
continue
}
fmt.Println("continue中i = ", i)
}
运行结果为:
break中i = 0
break中i = 1
break中i = 2
continue中i = 0
continue中i = 1
continue中i = 2
continue中i = 4
通过上面的结果可以发现break到i为3时就跳出这个for循环,而continue只是跳过了i为3时,接着运行下一次循环。
接下来讲解goto语句,通过goto关键字可以让程序跳到指的位置去执行,但是有一个条件就是跳转范围要在同一个函数内,不过值得一提就是,这个goto关键字尽量少用,因为这样会搞得程序跳来跳去,感觉好乱。
举例说明:
fmt.Println("aaaaaaaaaaaaaa")
goto Test
fmt.Println("bbbbbbbbbbbbbbb")
Test:
fmt.Println("cccccccccccccc")
结果为:
aaaaaaaaaaaaaa
cccccccccccccc
程序当中goto Test,其中Test就是程序需要跳转到的位置,即相当于一个标签位置。
閱讀更多 架構與我 的文章