Go语言入门【4】循环语句

循环语句是一个编程语言中不可缺少的一部分,循环通常用来完成具有规律性的重复性的操作,例如通过循环计算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)
}

运行结果:

image-20220115195311239

第二种

在第一种循环的基础上,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)
	}
}

运行结果:

image-20220115200955695

由于数组和切片的下标是从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)
}

运行结果:

image-20220115202105826

关注持续更新……

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CodeJR

如果觉得有用请赏一个呗!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值