循环语句和跳转语句

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就是程序需要跳转到的位置,即相当于一个标签位置。


分享到:


相關文章: