世界看点:go语言中for的写法有哪些

时间:2023-01-18 15:15:58       来源:PHP中文网

本教程操作环境: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中文网其它相关文章!

关键词: 循环语句 循环控制 控制变量