← 返回首页
Go基础教程(十四)
发表时间:2022-12-07 15:33:41
条件判断语句

Go语言的条件判断语句也分为if-else和switch

1.if-else语句

Go语言中,if else 条件判断格式如下:

if 表达式1 {
  分支1
} else if 表达式2 {
  分支2
} else {
  分支3
}

注意:Go语言中规定:if 的 左括号 ‘’{‘’ 必须与 if 表达式放在同一行,如果强行放置在其他位置,会发生如下编译错误。

实例:


package main

import (
    "fmt"
    "runtime"
)

func main() {
    // 定义一个整型变量
    var score int
    fmt.Println("请输入考试成绩:")
    fmt.Scan(&score)

    if score > 100 || score < 0 {
        fmt.Println("成绩非法!")
        runtime.Goexit()
    }

    // 判断考试分数的等级
    if score >= 90 && score <= 100 {
        fmt.Println("成绩优秀")
    } else if score >= 80 && score < 90 {
        fmt.Println("成绩良好")
    } else if score >= 60 && score < 80 {
        fmt.Println("成绩及格")
    } else {
        fmt.Println("不及格")
    }

}

运行效果:

请输入考试成绩:
88 
成绩良好

2.switch

Go 语言 改进了其他语言中switch 语句的设计弊端。Go语言中switch中的每一个case都是独立代码块,无需通过break语句跳出代码块,以避免执行到下一个case代码块。

上例子改用switch实现。

package main

import (
    "fmt"
    "runtime"
)

func main() {
    // 定义一个整型变量
    var score int
    fmt.Println("请输入考试成绩:")
    fmt.Scan(&score)

    if score > 100 || score < 0 {
        fmt.Println("成绩非法!")
        runtime.Goexit()
    }

    level := score / 10

    switch level {
    case 10, 9:
        fmt.Println("成绩优秀")
    case 8:
        fmt.Println("成绩良好")
    case 6, 7:
        fmt.Println("成绩及格")
    default:
        fmt.Println("不及格")
    }

}