ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

26 Go 循环语句for循环

2022-06-27 22:36:50  阅读:133  来源: 互联网

标签:index 26 字节 range 循环 interge str Go


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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有