写点什么

Go 语言入门 04—循环语句

作者:良猿
  • 2022-10-21
    湖北
  • 本文字数:1549 字

    阅读完需:约 1 分钟

Go语言入门04—循环语句

循环语句是一个编程语言中不可缺少的一部分,循环通常用来完成具有规律性的重复性的操作,例如通过循环计算 1 到 100 的累加或者累乘。

for 循环

for 循环是一个循环控制语句,在 go 语言中,for 循环一共有三种方式

第一种

语法:


for init; condition; post {    // 循环执行的语句}
复制代码


在这种循环方式中,可指定循环的次数。


init:赋值表达式,用于给控制变量赋初值


condition:条件表达式,用于控制循环


post:赋值表达式,用于给控制变量做增量或减量


循环执行步骤:


  1. 通过 init 给控制变量赋值

  2. 判断 condition 是否为 true,如果为 true 则执行循环体内的代码

  3. 循环体内的代码执行完之后通过 post 对控制变量进行增量或减量

  4. 返回第 2 步继续判断,然后第 2、3 步持续循环,知道 condition 为 false 时跳出循环


代码示例:


package main
import "fmt"
func main() { // 计算从1到100的累加结果 var sum int for i := 1; i <= 100; i++ { sum += i } fmt.Println("1到100累加结果为:", sum)}
复制代码


运行结果:


第二种

在第一种循环的基础上,init 和 post 不是必须存在,可以没有 init 或者没有 post,或者两个都没有都可以,


语法:


for condition {     // 循环执行的语句}
复制代码


代码示例:


package main
import "fmt"
func main() { // 计算1到10累乘结果 var sum int = 1 i := 1 for i <= 10 { sum *= i i++ } fmt.Println("1到10累乘结果为:", sum)}
复制代码


还有一种特殊的循环就是无限循环,无限循环就是表示没有终止条件的循环,这样 for 循环体中的代码就会无休止的一直执行,在实际开发中要注意避免无限循环情况的发生。


package main
import "fmt"
func main() { sum := 0 for { sum++ // 无限循环累加 } fmt.Println(sum) // 无法输出}
复制代码

第三种

第三种循环是用于数组、切片等输出的循环,在这种循环中,需要使用到一个关键字 range,range 后面紧跟的是需要遍历的数组或切片,range 前面可以使用两个变量进行接收数据,第一个变量会接收到数组或切片的下标,第二个变量会接收到数组或切片的值,在循环的过程中,会把数组或切片中的下标和值依次一个个取出来赋值给 index 和 value。


语法:


for index, value := range variable {    // 循环体} 
复制代码


代码示例:


package main
import "fmt"
func main() { numbers := [9]int {1,2,3,4,5,6,7,8,9} for i, v := range numbers { fmt.Printf("第%d个数是:%d \n", i, v) }}
复制代码


运行结果:



由于数组和切片的下标是从 0 开始的,所以第一行显示的是第 0 个数。


tips:数组和切片后面会详细介绍

break

break 语句的作用是在循环中跳出循环,或者在 switch 中执行一个 case 后跳出 swit。


代码示例:


package main
import "fmt"
func main() { sum := 1 for { sum++ if sum > 10 { break } } fmt.Println(sum) // 输出11}
复制代码


虽然这里使用的 for 循环是一个死循环,但是在循环体内进行了判断,当 sum 的值大于 10 的时候就跳出循环,所以该循环不会无休止的执行下去,而是会在 sum 加到 11 时就跳出循环。

continue

continue 和 break 用法类似,但是和 break 直接跳出循环不一样的是,continue 并不是直接跳出循环,而是结束本轮循环,执行 post 对控制变量进行增量或减量后进行下一轮循环。


代码示例:


package main
import "fmt"
func main() { // 计算1到100之间所有奇数的和 var sum int for i := 1; i <= 100; i++ { // 当i取余2为0时,则表示当前数为偶数,不参与计算,通过continue跳出本轮循环开始下一轮循环 if i%2 == 0 { continue } sum += i } fmt.Println("1到100之间奇数和为:", sum)}
复制代码


运行结果:



发布于: 刚刚阅读数: 3
用户头像

良猿

关注

还未添加个人签名 2019-02-13 加入

还未添加个人简介

评论

发布
暂无评论
Go语言入门04—循环语句_Go_良猿_InfoQ写作社区