其他分享
首页 > 其他分享> > 26 Go 循环语句for循环

26 Go 循环语句for循环

作者:互联网

golang的for循环有三种方式
 1 // 常规for循环的三种使用方式
 2 // 方式一
 3 for a := 1; a <=10; a++ {
 4     fmt.Println(a)
 5 }
 6 
 7 // 方式二
 8 var b uint8 = 0
 9 for b < 10 {
10     fmt.Println(b)
11     b++
12 }
13 
14 // 方式三
15 var c uint8 = 0
16 for {
17     if c < 10 {
18         fmt.Println(c)
19     } else {
20         break
21     }
22     c++
23 }

 

 

for-range

语句为

for 下标变量index, 每行内容row := range 目标待循环变量 {

  // 下标值 index

  // 每行内容变量row

}

 1 // for-range循环的使用
 2 // 当循环一个字符串时,常规for循环只能循环字串的字节,如下
 3 str := "hello,你好"
 4 for i := 0; i < len(str); i++ {
 5     fmt.Printf("%d - %c \n", i, str[i])
 6 }
 7 // 因为golang为默认为utf8编码,str字串的最后两个中文字各占三个字节,所以被便利循环为6个字节,且为乱码
 8 /*
 9 0 - h
10 1 - e
11 2 - l
12 3 - l
13 4 - o
14 5 - ,
15 6 - ä
16 7 - ½
17 8 -
18 9 - å
19 10 - ¥
20 11 - ½
21 */
22 
23 // 但当使用for-range循环时,效果如下
24 for index, val := range str {
25     fmt.Printf("%d - %c \n", index, val)
26 }
27 // str的长度没变还是12的字节,但是for-range会自动识别三个字节为一个汉字
28 /*
29 0 - h
30 1 - e
31 2 - l
32 3 - l
33 4 - o
34 5 - ,
35 6 - 你
36 9 - 好
37 */

 

 

 

练习题

 1 // 练习题1
 2 // 打印1~100间所有9的倍数的整数个数及他们之和
 3 var sum int
 4 var total uint8
 5 for n := 1; n <= 100; n++ {
 6     if n % 9 == 0 {
 7         total++
 8         sum += n
 9     }
10 }
11 fmt.Printf("1~100之间9的倍数共有 %d 个,他们之和为 %d \n", total, sum)
12 // 1~100之间9的倍数共有 11 个,他们之和为 594

 

 

 1 // 练习题2
 2 // 选定一个整数interge, 输出所有两个整数值之和等于integer的算式
 3 // 即,如interge为2,其输出结果如下:
 4 // 0+2=2
 5 // 1+1=2
 6 // 1+0=2
 7 var interge int
 8 fmt.Printf("请输入一个任意正整数:")
 9 fmt.Scanln(&interge)
10 
11 for m := 0; m <= interge; m++ {
12     fmt.Printf("%d + %d = %d \n", m, interge - m, interge)
13 }
14 
15 /*
16 请输入一个任意正整数:8
17 0 + 8 = 8
18 1 + 7 = 8
19 2 + 6 = 8
20 3 + 5 = 8
21 4 + 4 = 8
22 5 + 3 = 8
23 6 + 2 = 8
24 7 + 1 = 8
25 8 + 0 = 8
26 */

 

标签:index,26,字节,range,循环,interge,str,Go
来源: https://www.cnblogs.com/chengshan/p/16417762.html