第三章 go语言 程序的流程控制

程序流程控制主要包括三种不同的结构,分别是顺序结构、选择结构和循环结构。

² 顺序结构最为简单,程序执行时,按照语句的顺序自上而下依次执行。

² 选择结构是根据条件表达式的结果选择执行某些语句。

² 循环结构是重复执行执行某些语句。

3.1 选择结构 3.1.1 if语句的语法:

// 1

if condition {

    ...

}

// 2

if condition {

    ...

else {

    ...

}

// 3

if condition {

    ...

else if condition {

    ...

}

// 4

if condition {

    ...

else if condition {

    ...

else {

    ...

}

 

 

注意事项:

不需要使用括号()将条件包含起来。

无论语句体内有几条语句,花括号{}都必须存在。

左花括号{必须与ifelse同处一行,否则有编译器错误

else必须和上一个语句体结束的右花括号}同处一行,否则有编译错误

if之后可以添加变量初始化语句,但需要使用分号;间隔

惯用法:if 语句条件前面可以前置一条初始化语句,而go语言中的函数可以返回多个值,有很多函数第二个返回值是 error 类型,则我们可以通过

 

if v, err := func(); err == nil {

  //逻辑语句

}

 

四种不同if结构的案例如下:

package main

 

import "fmt"

 

func main() {

 

    fmt.Println("请输入您的成绩(0~100)")

    var grade int

    fmt.Scanln(&grade)

    // 1 错误判断

    if (grade < 0) || (grade > 100) {

        fmt.Println("您输入的成绩有误!")

        return

    }

    // 2 判断是否及格

    if grade >= 60 {

        fmt.Println("及格")

    } else {

        fmt.Println("不及格")

    }

    // 3 打印等级

    if (grade >= 90) && (grade <= 100) {

        fmt.Println("A")

    } else if (grade >= 80) && (grade < 90) {

        fmt.Println("B")

    } else if (grade >= 70) && (grade < 80) {

        fmt.Println("C")

    } else if (grade >= 0) && (grade < 70) {

        fmt.Println("D")

    }

 

    // 4 比较两个数值的大小

    fmt.Println("请输入两个整数:")

    var a, b int

    fmt.Scanln(&a, &b)

    if a > b {

        fmt.Println(a, "大于", b)

    } else if a < b {

        fmt.Println(a, "小于", b)

    } else {

        fmt.Println(a, "等于", b)

    }

}

 

 

3.1.2 switch语句

switch语句的语法:

switch condition {

case v0:

    ...

case v1:

    ...

case v2:

    ...

case v3:

    ...

case v4, v5, v6:

    ...

default:

    ...

}

 

注意事项:

1.左花括号{必须与switch同处一行。

2.case后可以使用常量,还可以使用变量。

package main

 

import "fmt"

 

func main() {

    condition := 0

    caseValue := 0

 

    switch condition {

    case caseValue:

        fmt.Println("0")

    case 1:

        fmt.Println("1")

    default:

        fmt.Println("Default")

    }

}

 

注意事项:

单个case后可以出现多个结果选项

不需要用break来明确退出一个case

只有在case中明确添加fallthrough关键字,才会继续执行下一个case

package main

 

import "fmt"

 

func main() {

    condition := 1

 

    switch condition {

    case 0:

        fmt.Println("0")

    case 1:

        fmt.Println("1")

        fallthrough

    default:

        fmt.Println("Default")

    }

}

 

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsxsfg.html