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语言中流程控制语句和循环语句介绍及示例。

相关推荐

  1. Go语言 流程控制循环语句

    2024-07-22 16:10:04       21 阅读
  2. 流程循环控制语句

    2024-07-22 16:10:04       22 阅读
  3. Go语言流程控制(一)

    2024-07-22 16:10:04       30 阅读
  4. Go语言流程控制(二)

    2024-07-22 16:10:04       30 阅读
  5. Go语言入门:Go程序的流程控制语句

    2024-07-22 16:10:04       46 阅读
  6. go语言实践】基础篇 - 流程控制

    2024-07-22 16:10:04       53 阅读
  7. Go语言入门之流程控制简述

    2024-07-22 16:10:04       26 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-22 16:10:04       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-22 16:10:04       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-22 16:10:04       45 阅读
  4. Python语言-面向对象

    2024-07-22 16:10:04       55 阅读

热门阅读

  1. Python笔记

    2024-07-22 16:10:04       15 阅读
  2. 配置阿里云

    2024-07-22 16:10:04       15 阅读
  3. 微软Edge浏览器全解析

    2024-07-22 16:10:04       16 阅读
  4. 零样本学习:目标检测的未来

    2024-07-22 16:10:04       17 阅读
  5. 大流量DDoS攻击:未来的网络攻击趋势与防御策略

    2024-07-22 16:10:04       16 阅读