GoLang的流程控制

流程控制

1、三大流程控制

  • 顺序控制
  • 分支控制
  • 循环控制

2、顺序控制

程序从上到下逐行地执行,中间没有任何判断和跳转

3、分支控制

分支控制就是让程序有选择执行。有下面三种形式

  • 单分支
  • 双分支
  • 多分支

3.1、单分支

if 条件表达式 {
    //
}

3.2、双分支

if 条件表达式 {
    //
} else {
    //
}

3.3、多分支

if 条件表达式 {
    //
} else if 条件表达式2 {
    //
}
...
else {

}

3.4、嵌套分支

if 条件表达式 {
    if 条件表达式2 {
        //
    }
} else {
    //
}

4、switch分支

4.1、基本介绍

  1. switch语句用于基于不同条件执行不同动作,每一个case分支都是唯一的,从上到下逐一测试,直到匹配为止。
  2. 匹配项后面也不需要再加break

4.2、语法

switch 表达式 {

    case 表达式1, 表达式2, ...:
        语句1

    case 表达式3, 表达式4, ...:
        语句2

    ...

    default:
        语句块
}

  1. switch的执行的流程是,先执行表达式,得到值,然后和case的表达式进行比较,如果相等,就匹配到,然后执行对应的case的语句块,然后退出switch控制。
  2. 如果switch的表达式的值没有和任何的case的表达式匹配成功,则执行default的语句块。执行switch的控制。
  3. golang的case后的表达式可以有多个,使用逗号间隔
  4. golang中的case语句块不需要写break,因为默认会有,即在默认情况下,当程序执行完case语句块后,就直接退出该switch控制结构。

4.3、案例 (在switch 中写判断)

func main() {
    a := 10
    switch true {
    case a > 10, a == 10:
        fmt.Println("成功了")
    default:
        fmt.Println("没走到")
    }

    b := a / 10
    switch b {
    case 2, 3, 4, 5, 6, 7, 8, 9:
        fmt.Println("没走到")
    default:
        fmt.Println("成功了")
    }
}

4.4、注意事项

  1. case/switch后是一个表达式(即:常量值变量、一个有返回值的函数等都可以)
  2. case后的各个表达式的值的数据类型,必须和switch的表达式数据类型一致
  3. case后面可以带多个表达式,使用逗号间隔
  4. case后面的表达式如果是常量值(字面量),则要求不能重复
  5. case后面不需要带break,程序匹配到一个case后就会执行对应的代码块,然后退出switch,如果一个都匹配不到,则执行default
  6. default语句不是必须的
  7. switch后也可以不带表达式,类似if--else分支来使用
a := 10;
switch {
case a > 10, a == 10:
    fmt.Println("成功了")
default:
    fmt.Println("没走到")
}
  1. switch后也可以直接声明/定义一个变量,分号结束,不推荐
// 不推荐写法
switch a := 10; {
case a > 10, a == 10:
    fmt.Println("成功了")
default:
    fmt.Println("没走到")
}
  1. switch穿透-fallthrough,如果在case语句块后增加fallthrough,则会继续执行下一个case,也叫switch穿透
a := 10
switch true {
case a > 10, a == 10:
    fmt.Println("成功了")
    fallthrough
default:
    fmt.Println("没走到")
}

5、for循环控制

5.1、语法格式

for 循环变量初始化; 循环条件; 循环变量迭代 {
    循环操作(语句)
}

5.2、注意事项

  1. 循环条件是返回一个布尔值的表达式
  2. 变体写法
    for 循环判断条件 {
        //
    }
    
    for {
        //通常配合break 使用
    }
  3. for-range 方式
    str := "abc"
    for index, val := range str {
        //
    }
  4. 传统的对字符串的遍历是按照字节来遍历,而一个汉字在utf8编码是对应3个字节
var str string = "hello,world 上海"
str2 := []rune(str) // 将str转换为[]rune
for i := 0, i < len(str2); i++ {
    //
}

// for-range 是按照字符方式遍历的,但是下标是字节数
var str string = "hello,world 上海"
for index, val := range str {
    fmt.Printf("index=%d, val=%c \n“, index, val)
}

5.3、break

5.4、continue

5.4、goto,return

原文地址:https://www.cnblogs.com/weichen-code/p/12369351.html

时间: 2024-08-30 00:30:38

GoLang的流程控制的相关文章

go语言-golang基础-流程控制

1 流程控制程序设计语言的流程控制语句,用于设定计算执行的次序,建立程序的逻辑结构.可以说,流程控制语句是整个程序的骨架.从根本上讲,流程控制只是为了控制程序语句的执行顺序,一般需要与各种条件配合,因此, 在各种流程中,会加入条件判断语句.流程控制语句一般起以下3个作用: 选择,即根据条件跳转到不同的执行序列; 循环,即根据条件反复执行某个序列,当然每一次循环执行的输入输出可能会发生变化; 跳转,即根据条件返回到某执行序列. Go语言支持如下的几种流程控制语句: 条件语句,对应的关键字为if.e

golang 流程控制

Go语言的流程控制主要分为三大类: 1. 条件判断 2. 循环控制 3. 无条件跳转 条件判断 Go语言的条件判断由if ... else if ... else 语句实现,条件表达式值必须是布尔类型,可省略圆括号,但是花括号不能省略且左花括号不能另起一行,比如: if 7%2 == 0 {     fmt.Println("7 is even") } else {     fmt.Println("7 is odd") }     if 8%4 == 0 {   

golang recover panic 流程控制的可达与不可达

--------------------------流程控制可达----------------------------- package main import "fmt" func explode() { // Cause a panic. panic("WRONG") } func throwPanic(f func()) { defer func() { if err := recover(); err != nil { // Handle our erro

Go语言流程控制

目录 顺序控制 分支控制 switch 循环控制 for break continue goto 在程序中,程序运行的流程控制决定程序是如何执行的,是我们必须掌握的,主要有三大流程控制语句. 顺序控制 分支控制 循环控制 顺序控制 程序从上到下逐行的执行,中间没有任何判断和跳转. 分支控制 让程序有选择的执行,分支控制有三种: (1)单分支 if 条件表达式 { //执行代码块 } (2)双分支 if 条件表达式 { //执行代码块 } else { //执行代码块 } (3)多分支 if 条件

流程控制之分支循环

在编写 Go 程序的时候,我们不仅会用前面学到的数据结构来存储数据,还会用到 if.switch.for 来进行条件判断和流程控制,今天我们就来一起学习下它们. if if 主要用于条件判断,语法为: if 条件 { # 业务代码 } 先看一个简单例子: package main import "fmt" func main() { age := 7 if age > 6 { fmt.Println("It's primary school") } } 我们可

程序流程控制1

在程序中,程序运行的流程控制决定程序是如何执行的,是我们必须掌握的,主要有三大流程控制语句. 1)顺序控制2)分支控制3)循环控制 顺序控制介绍: 程序从上到下逐行地执行,中间没有任何判断和跳转. 顺序控制举例和注意事项: Golang中定义变量时采用合法的前向引用.如: func main() { var num1 int = 10 //声明了num1 var num2 int = num1 + 20 //使用num1 fmt.Println(num2)} 错误形式: func main()

Golang-程序流程控制 if、switch

程序流程控制介绍 在程序中,程序运行的流程控制决定程序是如何执行的,是我们必须掌握的,主要有三大流程控制语句. 1)顺序控制 2)分支控制 3)循环控制 顺序控制 程序从上到下逐行地执行,中间没有任何判断和跳转. 一个案例说明,必须下面的代码中,没有判断,也没有跳转.因此程序按照默认的流程执行,即顺序控制. 顺序控制的一个流程图        顺序控制举例和注意事项 Golang 中定义变量时采用合法的前向引用.如: func main() { var num1 int = 10 //声明了 n

汇编语言入门:流程控制

流程控制:顺序,分支,循环 程序计数器PC中存储当前执行的程序在EM中的位置 汇编里面,用比较.跳转实现流程控制. 1.顺序:PC+1(不一定加一,看指令长度) 2.分支循环,直接赋给PC值,执行指定地址的程序 有时候需要程序有一定的流程控制能力,它不是老老实实按照顺序来执行的,中间可能会跳过一些代码 修改PC值,不可用MOV指令,PC是特殊的寄存器,特殊对待,跳转指令修改其值. 跳转指令: 1 ja 大于时跳转 2 jae 大于等于 3 jb 小于 4 jbe 小于等于 5 je 相等 6 j

从头开始-04.C语言中流程控制

分支结构: if语句:当条表达式满足的时候就执行if后面大括号中语句 三种格式: if,if else , if else if else 特点:1.只有一个代码块会被执行 2.若有else那么必有一个代码会被执行 3.一个if语句中只能以if开头,最多只能有一个else,可以有任意个else if switch(表达式){ case 常量: ... break; case 常量1: ... break; default: ... break; } : 使用场景:当一个变量只有几个固定的取值的时