Java转Go—05循环语句

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

运行结果:

Java转Go—05循环语句
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)
 }
}

运行结果:

Java转Go—05循环语句
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)
}

运行结果:

Java转Go—05循环语句
image-20220115202105826

原文始发于微信公众号(良猿):Java转Go—05循环语句

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/215880.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!