本教程操作环境:windows7系统、GO 1.18版本、Dell G3电脑。
(相关资料图)
与多数语言不同的是,Go语言中的循环语句只支持 for 关键字,而不支持 while 和 do-while 结构。
for 循环是一个循环控制结构,可以执行指定次数的循环。
Go 语言 for 循环的写法
Go 语言的 For 循环有 3 种形式,只有其中的一种使用分号。
和 C 语言的 for 一样:
for init; condition; post { }
登录后复制
和 C 的 while 一样:
for condition { }
登录后复制
和 C 的 for(;;) 一样:
for { }
登录后复制
init: 一般为赋值表达式,给控制变量赋初值;
condition: 关系表达式或逻辑表达式,循环控制条件;
post: 一般为赋值表达式,给控制变量增量或减量。
for语句执行过程如下:
1、先对表达式 1 赋初值;
2、判别赋值表达式 init 是否满足给定条件,若其值为真,满足循环条件,则执行循环体内语句,然后执行 post,进入第二次循环,再判别 condition;否则判断 condition 的值为假,不满足条件,就终止for循环,执行循环体外语句。
使用循环语句时,需要注意的有以下几点:
左花括号{
必须与 for 处于同一行。
Go语言中的 for 循环与C语言一样,都允许在循环条件中定义和初始化变量,唯一的区别是,Go语言不支持以逗号为间隔的多个赋值语句,必须使用平行赋值的方式来初始化多个变量。
Go语言的 for 循环同样支持 continue 和 break 来控制循环,但是它提供了一个更高级的 break,可以选择中断哪一个循环,如下例:
for j := 0; j < 5; j++ { for i := 0; i < 10; i++ { if i > 5 { break JLoop } fmt.Println(i) }}JLoop:// ...
登录后复制
上述代码中,break 语句终止的是 JLoop 标签处的外层循环。
Go 语言 for 循环的使用
for 循环的 range 格式可以对 slice、map、数组、字符串等进行迭代循环。格式如下:
for key, value := range oldMap { newMap[key] = value}
登录后复制
以上代码中的 key 和 value 是可以省略。
如果只想读取 key,格式如下:
for key := range oldMap
登录后复制
或者这样:
for key, _ := range oldMap
登录后复制
如果只想读取 value,格式如下:
for _, value := range oldMap
登录后复制
实例
计算 1 到 10 的数字之和:
package mainimport "fmt"func main() { sum := 0 for i := 0; i <= 10; i++ { sum += i } fmt.Println(sum)}
登录后复制
输出结果为:
55
登录后复制
init 和 post 参数是可选的,我们可以直接省略它,类似 While 语句。
以下实例在 sum 小于 10 的时候计算 sum 自相加后的值:
package mainimport "fmt"func main() { sum := 1 for ; sum <= 10; { sum += sum } fmt.Println(sum) // 这样写也可以,更像 While 语句形式 for sum <= 10{ sum += sum } fmt.Println(sum)}
登录后复制
输出结果为:
1616
登录后复制
【相关推荐:Go视频教程、编程教学】
以上就是go语言中for的写法有哪些的详细内容,更多请关注php中文网其它相关文章!