1. 程式人生 > >Golang初級系列教程-控制結構-ifelse

Golang初級系列教程-控制結構-ifelse

程式能夠根據不同的條件執行不同的功能——如果你想去海灘請向左轉,如果想去電影院請向右轉。if else語句是非常簡單的控制結構。在Go中通常的用法如下。

if some_boolean_expression {
    // execute this block if some_boolean_expression is true
} else if alternate_boolean_expression {
    // execute this block if alternate_boolean_expression is true
} else {
    // if none of the other blocks are executed, then execute this block
}

幾點提示:

  • some_boolean_expressionalternate_boolean_expression 需要為bool型別的值: true 或者 false
  • 在判定語句兩側不需要()——也可以使用,但是沒必要
  • Go獨特之處:需要將大括號{if else放在同一行,否則會報錯哦。missing condition in if statement or syntax error: unexpected semicolon or newline before else.
  • 如果多個判定都為true,那麼總是會執行遇到的第一個為正確的語句塊

注意:int型別不能作為真值

使用——和C語言不同,在C語言中整型和指標都可以作為真值使用

必須具有明確的值 ture 或者 false, 或者使用能夠產生 true 或者 false 的表示式。以下能夠獲得真值的表示式是允許的。


== equal to
!= not equal to
< less than
<= less than or equal to
> greater than
<= greater than or equal to
&& and
|| or

通過幾個例項說明上述的內容。首先,使用bool值。

package main

import
"fmt" func main() { if true { fmt.Println("the true block is executed") } if false { fmt.Println("the false block won't be executed") } }
the true block is executed

通過比較操作符獲取真值

package main

import "fmt"

func main() {
    a, b := 4, 5
    if a < b {
        fmt.Println("a is less than b")
    } else if a > b {
        fmt.Println("a is greater than b")
    } else {
        fmt.Println("a is equal to b")
    }
}
a is less than b

if else非常的簡單,不需要再過多的舉例了。以下讓我們簡單列舉一些常見的錯誤即可。

錯誤小片段

//error: non-bool 5 (type ideal) used as if condition
if 5 {  //an integer type does not evaluate to a bool by itself
}

//error: non-bool s (type string) used as if condition
var s string
if s { //a string type does not evaluate to a bool by itself
}

//error: non-bool e (type os.Error) used as if condition
var e os.Error
e = nil
if e { //nil value is not a true or false
}

//error: missing condition in if statement
if true  //the open brace needs to be on this line
{ }

//error: unexpected semicolon or newline before else
if true {
} // the else needs to be on this line itself
else {
}

Golang一種神奇的語言,讓我們一起進步