Go 條件

條件語句用于根據(jù)不同的條件執(zhí)行不同的操作。

Go中的條件可以是真或假。

Go支持?jǐn)?shù)學(xué)中常見的比較運(yùn)算符:

小于 < 小于等于 <= 大于 > 大于等于 >= 等于 == 不等于 != 此外,Go還支持常見的邏輯運(yùn)算符:

邏輯與 && 邏輯或 || 邏輯非 ! 您可以使用這些運(yùn)算符或它們的組合來創(chuàng)建不同決策的條件。

示例 嘗試一下 x > y x != y (x > y) && (y > z) (x == y) || z

Go具有以下條件語句:

  • 使用if來指定在指定條件為真時(shí)執(zhí)行的代碼塊
  • 使用else來指定在相同條件為假時(shí)執(zhí)行的代碼塊
  • 使用else if來指定要測(cè)試的新條件山析,如果第一個(gè)條件為假
  • 使用switch來指定要執(zhí)行的多個(gè)備選代碼塊

if語句

使用if語句來指定在條件為真時(shí)執(zhí)行的一段Go代碼。

語法

if 條件 {
  // 如果條件為真掏父,則執(zhí)行的代碼
}

請(qǐng)注意笋轨,if關(guān)鍵字要小寫。大寫字母(If或IF)會(huì)導(dǎo)致錯(cuò)誤赊淑。

在下面的示例中爵政,我們測(cè)試了兩個(gè)值,以確定20是否大于18陶缺。如果條件為真钾挟,則打印一些文本:

示例

package main
import ("fmt")

func main() {
  if 20 > 18 {
    fmt.Println("20 大于 18")
  }
}

我們也可以測(cè)試變量:

示例

package main
import ("fmt")

func main() {
  x := 20
  y := 18
  if x > y {
    fmt.Println("x 大于 y")
  }
}

示例解釋

在上面的示例中,我們使用了兩個(gè)變量x和y饱岸,測(cè)試x是否大于y(使用>運(yùn)算符)掺出。由于x為20,y為18苫费,我們知道20大于18汤锨,所以我們打印出"x 大于 y"。

else語句

使用else語句來指定在條件為假時(shí)執(zhí)行的一段代碼百框。

語法

if 條件 {
  // 如果條件為真闲礼,則執(zhí)行的代碼
} else {
  // 如果條件為假,則執(zhí)行的代碼
}

使用if else語句的示例:

示例

在此示例中铐维,時(shí)間(20)大于18柬泽,因此if條件為假。因此嫁蛇,我們轉(zhuǎn)而執(zhí)行else條件锨并,并在屏幕上打印"晚上好"。如果時(shí)間小于18睬棚,程序?qū)⒋蛴?白天好":

package main
import ("fmt")

func main() {
  時(shí)間 := 20
  if 時(shí)間 < 18 {
    fmt.Println("白天好琳疏。")
  } else {
    fmt.Println("晚上好有决。")
  }
}

示例

在此示例中,溫度為14空盼,因此if的條件為假书幕,因此執(zhí)行else語句中的代碼行:

package main
import ("fmt")

func main() {
  溫度 := 14
  if 溫度 > 15 {
    fmt.Println("外面溫暖。")
  } else {
    fmt.Println("外面寒冷揽趾。")
  }
}

else語句中的括號(hào)應(yīng)該像} else {這樣寫:

示例

將else的括號(hào)放在不同的行會(huì)引發(fā)錯(cuò)誤:

package main
import ("fmt")

func main() {
  溫度 := 14
  if 溫度 > 15 {
    fmt.Println("外面溫暖台汇。")
  } // 這將引發(fā)錯(cuò)誤
  else {
    fmt.Println("外面寒冷。")
  }
}

結(jié)果:

./prog.go:9:3: 語法錯(cuò)誤:意外的 else篱瞎,期望 }

else if 語句

使用 else if 語句在第一個(gè)條件為假時(shí)指定新條件苟呐。

語法:

if 條件1 {
    // 如果條件1為真時(shí)執(zhí)行的代碼
} else if 條件2 {
    // 如果條件1為假且條件2為真時(shí)執(zhí)行的代碼
} else {
    // 如果條件1和條件2都為假時(shí)執(zhí)行的代碼
}

使用 else if 語句的示例:

package main

import (
    "fmt"
)

func main() {
    time := 22
    if time < 10 {
        fmt.Println("早上好。")
    } else if time < 20 {
        fmt.Println("白天好俐筋。")
    } else {
        fmt.Println("晚上好牵素。")
    }
}

結(jié)果:

晚上好。

示例解釋:

在上面的示例中澄者,時(shí)間(22)大于10笆呆,因此第一個(gè)條件為假。接下來粱挡,在 else if 語句中的下一個(gè)條件也為假赠幕,因此我們轉(zhuǎn)向 else 條件,因?yàn)闂l件1和條件2都為假询筏,所以輸出屏幕上顯示 "晚上好"榕堰。

但是,如果時(shí)間為14嫌套,我們的程序?qū)⒋蛴?"白天好"逆屡。

另一個(gè) else if 的示例:

package main

import (
    "fmt"
)

func main() {
    a := 14
    b := 14
    if a < b {
        fmt.Println("a 小于 b。")
    } else if a > b {
        fmt.Println("a 大于 b踱讨。")
    } else {
        fmt.Println("a 和 b 相等魏蔗。")
    }
}

結(jié)果:

a 和 b 相等。

注意:

如果條件1和條件2都為真勇蝙,則僅執(zhí)行條件1的代碼沫勿。

嵌套的 if 語句

您可以在 if 語句內(nèi)部使用 if 語句挨约,這稱為嵌套的 if味混。

語法:

if 條件1 {
    // 如果條件1為真時(shí)執(zhí)行的代碼
    if 條件2 {
        // 如果條件1和條件2都為真時(shí)執(zhí)行的代碼
    }
} else {
    // 如果條件1為假時(shí)執(zhí)行的代碼
}

嵌套 if 語句的示例:

package main

import (
    "fmt"
)

func main() {
    num := 20
    if num >= 10 {
        fmt.Println("Num 大于等于 10。")
        if num > 15 {
            fmt.Println("Num 也大于 15诫惭。")
        }
    } else {
        fmt.Println("Num 小于 10翁锡。")
    }
}

結(jié)果:

Num 大于等于 10。
Num 也大于 15夕土。

最后

為了方便其他設(shè)備和平臺(tái)的小伙伴觀看往期文章馆衔,鏈接奉上:

公眾號(hào)搜索Let us Coding瘟判,知乎開源中國(guó)角溃,CSDN拷获,思否掘金减细,InfoQ匆瓜,簡(jiǎn)書澈蚌,博客園泵肄,慕課51CTO酬蹋,helloworld萧吠,騰訊開發(fā)者社區(qū)左冬,阿里開發(fā)者社區(qū)

看完如果覺得有幫助,歡迎點(diǎn)贊纸型、收藏關(guān)注

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末拇砰,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子绊袋,更是在濱河造成了極大的恐慌毕匀,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,576評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件癌别,死亡現(xiàn)場(chǎng)離奇詭異皂岔,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)展姐,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,515評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門躁垛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人圾笨,你說我怎么就攤上這事教馆。” “怎么了擂达?”我有些...
    開封第一講書人閱讀 168,017評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵土铺,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我板鬓,道長(zhǎng)悲敷,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,626評(píng)論 1 296
  • 正文 為了忘掉前任俭令,我火速辦了婚禮后德,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘抄腔。我一直安慰自己瓢湃,他們只是感情好理张,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,625評(píng)論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著绵患,像睡著了一般雾叭。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上落蝙,一...
    開封第一講書人閱讀 52,255評(píng)論 1 308
  • 那天拷况,我揣著相機(jī)與錄音,去河邊找鬼掘殴。 笑死赚瘦,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的奏寨。 我是一名探鬼主播起意,決...
    沈念sama閱讀 40,825評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼病瞳!你這毒婦竟也來了揽咕?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,729評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤套菜,失蹤者是張志新(化名)和其女友劉穎亲善,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體逗柴,經(jīng)...
    沈念sama閱讀 46,271評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蛹头,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,363評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了戏溺。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片渣蜗。...
    茶點(diǎn)故事閱讀 40,498評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖旷祸,靈堂內(nèi)的尸體忽然破棺而出耕拷,到底是詐尸還是另有隱情,我是刑警寧澤托享,帶...
    沈念sama閱讀 36,183評(píng)論 5 350
  • 正文 年R本政府宣布骚烧,位于F島的核電站,受9級(jí)特大地震影響闰围,放射性物質(zhì)發(fā)生泄漏赃绊。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,867評(píng)論 3 333
  • 文/蒙蒙 一辫诅、第九天 我趴在偏房一處隱蔽的房頂上張望凭戴。 院中可真熱鬧涧狮,春花似錦炕矮、人聲如沸么夫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,338評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽档痪。三九已至,卻和暖如春邢滑,著一層夾襖步出監(jiān)牢的瞬間腐螟,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,458評(píng)論 1 272
  • 我被黑心中介騙來泰國(guó)打工困后, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留乐纸,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,906評(píng)論 3 376
  • 正文 我出身青樓摇予,卻偏偏與公主長(zhǎng)得像汽绢,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子侧戴,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,507評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容