Go语言 流程控制和循环语句

本文主要内容为Go语言中流程控制语句和循环语句介绍及示例。 

目录

流程控制语句

If条件语句

If使用规则

表达式语句

Switch语句

使用fallthrough

判断表达式结果

从命令行获取参数

For循环语句

简单循环

省略循环条件

For无限循环

For循环中的continue

新型for循环

忽略数组索引

总结


流程控制语句

Go 语言代码逻辑的控制

流程控制语句用于控制程序的执行顺序

这样你的程序就具备了逻辑结构

If条件语句

根据布尔值的表达式来决定选择哪个分支执行;

如果表达式的值为 true,则if分支被执行。

如果表达式的值为 false,则 else 分支被执行。

示例:

package main

import "fmt"

func main() {
   i := 10
   if i > 10 {
      fmt.Println("i>10")
   } else {
      fmt.Println("i<=10")
   }
}

If使用规则

if后面的条件表达式不需要使用()

每个条件分支(if或者else)中的大括号是必须的

if紧跟的大括号{不能独占一行

else 前的大括号}也不能独占一行

在if……else 条件语句中还可以增加多个else if

增加更多的条件分支

表达式语句

示例如下:

func main() {
   if i := 6; i > 10 {
      fmt.Println("i>10")
   } else if i > 5 && 1 <= 10 {
      fmt.Println("5<i<=10")
   } else {
      fmt.Println("i<=5")
   }
}

Switch语句

如果有很多分支的话,选择switch会更方便。

switch 的case 从上到下逐一进行判断;

一旦满足条件,立即执行对应的分支并返回,其余分支不再做判断。

示例:

func main() {
   switch i := 6; {
   case i > 10:
      fmt.Println("i>10")
   case i > 5 && i <= 10:
      fmt.Println("5<i<=10")
   default:
      fmt.Println("i<=5")
   }
}

注意:不需要写break。在go语言中switch case的每一条判断后,自动带break。

使用fallthrough

Go的switch,默认加上break了,不需要手动处理。

如果想向下穿透的话,那么需要加上关键字:fallthrough。

示例如下:

switch j := 1; j{
case 1:
   fmt.Println("1")
   fallthrough
case 2:
   fmt.Println("2")
default:
   fmt.Println("没有匹配")
}

 

判断表达式结果

switch可用来判断表达式的结果,设置两数比较大小,判断结果布尔值。

示例如下:

a := 2
b := 1
switch a > b {
case true:
   fmt.Println("a>b")
case false:
   fmt.Println("a<=b")
}

 

从命令行获取参数

从命令行中获取参数,并在switch中进行判断处理。

Go:os.Args 直接可以获取命令输入,是一个字符串切片

示例如下:

func main() {
   // os.Args ==> 直接可以获取命令输入,是一个字符串切片
   cmds := os.Args
   // os.Args[0] ==> 程序名字
   // os.Args[1] ==> 第一个参数,以此类推
   for key, cmd := range cmds {
      fmt.Println("key:", key, ", cmd:", cmd)
   }

   if len(cmds) < 2 {
      fmt.Println("请正确输入参数!")
      return
   }
   switch cmds[1] {
   case "hello":
      fmt.Println("hello")
      // fallthrough 会向下穿透
      fallthrough
   case "world":
      fmt.Println("world")
   }
}

执行:

$ go run switch选择.go hello
key: 0 , cmd: C:\Users\18201\AppData\Local\Temp\go-build2460526206\b001\exe\switch选择.exe
key: 1 , cmd: hello
hello
world

For循环语句

简单循环

简单语句,一般用于for循环的初始化

for 循环的条件,表示 for 循环什么时候结束

更新语句,一般用于更新循环的变量

示例如下:

package main

import "fmt"

func main() {
   sum := 0
   for i := 1; i <= 100; i++ {
      sum += i
   }
   fmt.Println("总和:", sum)
}

 

省略循环条件

上面的for循环也可以省略循环条件

示例如下:

sum := 0
i := 1
for i <= 100 {
   sum += i
   i++
}
fmt.Println("总和:", sum)

For无限循环

无条件的for循环,又叫for无限循环。

continue 可以跳出本次循环,继续执行下一个循环。

break 可以跳出整个 for 循环,哪怕 for 循环没有执行完,也会强制终止。

示例如下:

sum := 0
i := 1
for {
   sum += i
   i++
   if i > 100 {
      break
   }
}
fmt.Println("总和:", sum)

 

For循环中的continue

练习使用for循环中的continue

示例如下:

sum := 0
for i := 1; i < 100; i++ {
   if i%2 != 0 {
      continue
   }
   sum += i
}
fmt.Println("总和:", sum)

 

新型for循环

大多数情况下使用的是 for range这种go语言的新型循环。

示例如下:

arr := []string{"张三", "李四"}
for i, v := range arr {
   fmt.Printf("数组索引%d, 对应值%s\n", i, v)
}

忽略数组索引

可使用_忽略掉数组索引。

示例如下:

arr := []string{"张三", "李四"}
for _, v := range arr {
   fmt.Printf("数组值%s\n", v)
}

总结

本文主要内容为Go语言中流程控制语句和循环语句介绍及示例。

  • 18
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

JSON_L

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值