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

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

目录

流程控制语句

If条件语句

If使用规则

表达式语句

Switch语句

使用fallthrough

判断表达式结果

从命令行获取参数

For循环语句

简单循环

省略循环条件

For无限循环

For循环中的continue

新型for循环

忽略数组索引

总结


流程控制语句

Go 语言代码逻辑的控制

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

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

If条件语句

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

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

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

示例:

Go 复制代码
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

增加更多的条件分支

表达式语句

示例如下:

Go 复制代码
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 从上到下逐一进行判断;

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

示例:

Go 复制代码
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。

示例如下:

Go 复制代码
switch j := 1; j{
case 1:
   fmt.Println("1")
   fallthrough
case 2:
   fmt.Println("2")
default:
   fmt.Println("没有匹配")
}
判断表达式结果

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

示例如下:

Go 复制代码
a := 2
b := 1
switch a > b {
case true:
   fmt.Println("a>b")
case false:
   fmt.Println("a<=b")
}
从命令行获取参数

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

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

示例如下:

Go 复制代码
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")
   }
}

执行:

bash 复制代码
$ 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 循环什么时候结束

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

示例如下:

Go 复制代码
package main

import "fmt"

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

省略循环条件

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

示例如下:

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

For无限循环

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

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

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

示例如下:

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

For循环中的continue

练习使用for循环中的continue

示例如下:

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

新型for循环

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

示例如下:

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

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

示例如下:

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

总结

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

相关推荐
tangliang_cn12 分钟前
java入门 自定义springboot starter
java·开发语言·spring boot
程序猿阿伟13 分钟前
《智能指针频繁创建销毁:程序性能的“隐形杀手”》
java·开发语言·前端
新知图书24 分钟前
Rust编程与项目实战-模块std::thread(之一)
开发语言·后端·rust
威威猫的栗子26 分钟前
Python Turtle召唤童年:喜羊羊与灰太狼之懒羊羊绘画
开发语言·python
力透键背26 分钟前
display: none和visibility: hidden的区别
开发语言·前端·javascript
bluefox197927 分钟前
使用 Oracle.DataAccess.Client 驱动 和 OleDB 调用Oracle 函数的区别
开发语言·c#
盛夏绽放1 小时前
Node.js 和 Socket.IO 实现实时通信
前端·后端·websocket·node.js
ö Constancy1 小时前
c++ 笔记
开发语言·c++
Ares-Wang1 小时前
Asp.net Core Hosted Service(托管服务) Timer (定时任务)
后端·asp.net
墨染风华不染尘1 小时前
python之开发笔记
开发语言·笔记·python