5.2. 选择结构-if-else

未匹配的标注
本文档最新版为 2023,旧版本可能放弃维护,推荐阅读最新版!

选择结构

if结构

在编程中实现选择判断结构就是用if

if**结构基本语法**

if **条件判断{**

代码语句

}**,**

条件判断如果为真(true),那么就执行大括号中的语句,如果为假(false),就不执行大括号中的语句,(大家可以想一下,什么样的表达式返回的结果要么为true,要么为false),继续执行if结构后面的代码

func main() {

    //if 表达式
    //{
    //代码体
    //}

    var score int

    fmt.Scan(&score)

    if score > 700 {
        fmt.Println("我要上清华")
    }

    if score > 700 {
        fmt.Println("我要上清华")
    } else {
        fmt.Println("我要上波哥")
    }

}

if else结构

基本语法
想一想:在使用if的时候,它只能做到满足条件时要做的事情。那万一需要在不满足条件的时候,做某些事,该怎么办呢?

else

结构如下:

if **条件判断{**

代码语句1

}else{

代码语句2

}

首先先执行if后面的条件判断,如果条件判断成立(结果为真),执行if后面的代码语句1,代码语句1执行完成后,表示整个if—else–结构结束了(else后面的代码语句2不会执行),继续执行后面的代码。如果if后面的条件判断不成立也就是结果为假,那么if后面的代码语句1不会被执行,这时会执行else后面的代码语句2,执行完后,表示整个if—else—结构执行结束了,再执行后续的代码。


    if score > 700 {

        fmt.Println("我要上清华")

    } else if score > 680 {

        fmt.Println("我要上北大")

    } else if score > 650 {

        fmt.Println("我要上人大")

    } else {

        fmt.Println("我要上波哥")

    }

if嵌套

我们上面的案例中,使用的是if-else的基本结构,其实if-else结构还可以进行嵌套使用。

三只小猪称体重 通过键盘输入三只小猪体重 找到最重的

func main() {

    var a, b, c int
    //10 8 12
    fmt.Scan(&a, &b, &c)

    if a > b {
        //a重
        if a > c {
            fmt.Println("a最重")
        } else {
            fmt.Println("c最重")
        }
    } else {
        //b重
        if b > c {
            fmt.Println("b最重")
        } else {
            fmt.Println("c最重")
        }
    }
}

if-else if 结构

基本语法如下:

if **条件判断{**

要执行的代码段

}else if **条件判断{**

要执行的代码段

}else if **条件判断{**

要执行的代码段

}else if**条件判断{**

要执行的代码段

}…………………………….else{

}

通过以上的语法格式我们发现,可以写很多的else if结构。

具体的执行过程:程序首先判断第一个if所带的小括号中的判断条件,如果条件成立,也就是返回一个true,

则执行该if所带的大括号中的代码,执行完成后,立即跳出if else-if结构。

如果第一个if所带的判断条件不成立,也就是返回一个false,则继续向下进行判断,依次的判断每一个if所带

的判断条件,如果成立,就执行该if所带的大括号中的代码,如果不成立,则继续向下判断,

如果每个if所带的判断条件都不成立,就看当前这个if else-if结构中是否存在else。

如果有else的话,则执行else中所带的代码,如果没有else,则整个 if-else if什么都不做。

else**可以省略。**

var score int

    fmt.Scan(&score)

    if score > 700 {
        fmt.Println("我要上清华")
        if score > 720 {
            fmt.Println("我要学挖掘机")
        } else if score > 710 {
            fmt.Println("我要学美容美发")
        } else {
            fmt.Println("我要学习汽修")
        }

    } else if score > 680 {
        fmt.Println("我要上北大")

        if score > 690 {
            fmt.Println("我要学盗墓")
        } else {
            fmt.Println("我要学习go语言")
        }
    }

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
讨论数量: 0
发起讨论 只看当前版本


暂无话题~