Go入门13:流程控制之 if-else

if 语句

if 是用于测试某个条件(布尔型或逻辑型)的语句,如果该条件成立,则会执行 if 后由大括号括起来的代码块,否则就忽略该代码块继续执行后续的代码。

if condition {

    // do something   

}

if-else 结构定义

如果存在第二个分支,则可以在上面代码的基础上添加 else 关键字以及另一代码块,这个代码块中的代码只有在条件不满足时才会执行。if 和 else 后的两个代码块是相互独立的分支,只可能执行其中一个。

if condition {

    // do something   

} else {

    // do something   

}

多分支 if-else 结构定义

如果存在第三个分支,则可以使用下面这种三个独立分支的形式:

if condition1 {

    // do something   

} else if condition2 {

    // do something else   

} else {

    // catch-all or default

}

else-if 分支的数量是没有限制的,但是为了代码的可读性,还是不要在 if 后面加入太多的 else-if 结构。如果你必须使用这种形式,则把尽可能先满足的条件放在前面

即使当代码块之间只有一条语句时,大括号也不可被省略(尽管有些人并不赞成,但这还是符合了软件工程原则的主流做法)。

格式规则

1)Go语言中条件语句不需要圆括号,但是分支中必须有大括号。

2)Go语言条件语句中可以用 := 初始化一个变量,不过需要记住,这个变量是局部变量,该变量的作用域仅在if范围之内。

3)Go语言里面对 if/else 格式对齐要求很严格,如果需要 if/else 组合,则需要在if语句结束的大括号后面就跟上else。

4)关键字 if 和 else 之后的左大括号 { 必须和关键字在同一行,如果你使用了 else-if 结构,则前段代码块的右大括号 } 必须和 else-if 关键字在同一行。这两条规则都是被编译器强制规定的。

例如,下面的if-else代码段是非法的:

if x {

}

else {    // 非法!!!

}

强大的if

条件判断语句里面允许声明一个变量,这个变量的作用域只能在该条件逻辑块内,其他地方就不起作用。

// 计算获取值x,然后根据x返回的大小,判断是否大于10

if x:= computedValue(); x >10 {

    fmt.Println(“x is greater than 10”)

} else {

    fmt.Println(“x is less than 10”)

}

// 这个地方如果这样调用就编译出错了,因为x是条件里面的变量

fmt.Println(x)

示例代码

1)只有 if

if 8%4 == 0 {

    fmt.Println(“8 is divisible by 4”)

}

2)if – else

if 7%2 == 0 {

    fmt.Println(“7 is even”)

} else {

    fmt.Println(“7 is odd”)

}

3)if – else if – else

    // if条件可以包含一个初始化表达式,这个表达式中的变量

    // 是这个条件判断结构的局部变量

    if num := 9; num < 0 {

        fmt.Println(num, “is negative”)

    } else if num < 10 {

        fmt.Println(num, “has 1 digit”)

    } else {

        fmt.Println(num, “has multiple digits”)

    }

    原文作者:laigw
    原文地址: https://www.jianshu.com/p/403885a0943b
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞