//输出的结果 你好,welcome to study 1 你好,welcome to study 2 你好,welcome to study 3 你好,welcome to study 4 你好,welcome to study 5 你好,welcome to study 6 你好,welcome to study 7 你好,welcome to study 8 你好,welcome to study 9 你好,welcome to study 10
3、for常见的语法格式
1、for 循环变量初始化; 循环条件; 循环变量迭代 {
循环操作(语句)
}
2、for 循环判断条件 {
循环执行语句
循环变量迭代
}
1 2 3 4 5 6 7 8 9 10 11
package main import ( "fmt" ) funcmain() { j := 1 for j <= 10 { fmt.Println("你好,Welcome to study", j) j++ } }
3、
for {
循环执行语句
}
上面的写法等价 for ; ; {} 是一个无限循环, 通常需要配合 break 语句使用
k := 1
for { // 这里也等价 for ; ; {
if k <= 10 {
fmt.Println(“ok~~”, k)
} else {
break //break就是跳出这个for循环
}
k++
}
4、for range
Golang 提供 for-range 的方式,可以方便遍历字符串和数组
遍历字符串
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
方式1-使用传统方式: // var str string = "hello,world,Welcome to 北京" // for i := 0; i < len(str); i++ { // fmt.Printf("%c \n", str[i]) //使用到下标... // } //上面方式打印汉字会乱码,需要转成切片 var str string = "hello,world,Welcome to 北京" str2 := []rune(str) // 就是把 str 转成 []rune for i := 0; i < len(str2); i++ { fmt.Printf("%c \n", str2[i]) //使用到下标... %c是输出字符的意思
方式2-使用forrange: str = "hello,welcome to上海" for index, val := range str { fmt.Printf("index=%d, val=%c \n", index, val)
5、for循环练习
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
funcmain() { //打印1-100之间所有事9的倍数的整数的个数及总和 //1、使用for循环对max进行遍历 //2、当一个数%9==0就是9的倍数 //3、我们需要声明两个变量count和sum来保存个数和总和 var max uint64 = 100 var count uint64 = 0 var sum uint64 = 0 var i uint64 = 1 for ; i <= max; i++ { if i%9 == 0 { count++ sum += i } } fmt.Printf("count=%v sum=%v\n", count, sum) } //最终的输出结果 //count=11 sum=594
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
var n int = 6 for i := 0; i <= n; i++ { fmt.Printf("%v+%v=%v\n", i, n-i, n) } }