Go语言if else(分支结构)

Posted by

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

if condition {
    // do something
}
if

If 语句告诉我们,如果条件为真,它将执行一个语句块,如果条件为假,它将不执行。但是如果我们想做其他的事情,如果条件是错误的。接下来是 else 声明。我们可以使用 else 语句和 if 语句在条件为 false 时执行代码块。语法:

if condition {

    // Executes this block if
    // condition is true
} else {

    // Executes this block if
    // condition is false
}
if else

在这里,用户可以在多个选项中做出选择。If 语句是从上到下执行的。一旦控制 if 的条件之一为真,则执行与 if 相关的语句,并绕过梯子的其余部分。如果所有条件都不为真,则执行最后的 else 语句。

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

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

非法的 Go 代码:

if x{
}
else { // 无效的
}

注意的是,在使用 gofmt 格式化代码之后,每个分支内的代码都会缩进 4 个或 8 个空格,或者是 1 个 tab,并且右大括号}与对应的 if 关键字垂直对齐。

在有些情况下,条件语句两侧的括号是可以被省略的,当条件比较复杂时,则可以使用括号让代码更易读,在使用 &&、|| 或 ! 时可以使用括号来提升某个表达式的运算优先级,并提高代码的可读性。

语法如下:

if condition_1 {

     // this block will execute 
     // when condition_1 is true

} else if condition_2 {

    // this block will execute 
    // when condition2 is true
}
.
.
. else {

      // this block will execute when none
     // of the condition is true
}
if elseif