Go的條件判斷語句的使用
現實時間中,我們如果想去購物,可以選擇網上或者線下去購物,甚至說,要購買的物品都有許多選擇,選價格便宜的,選質量好的,選不用運費等等
那麼在計算機語言中,我們要怎麼實現現實中,這些選擇呢?
Go語言支援了幾種條件判斷語句,if 語句和switch語句
if 語句
單分支結構
格式
if 條件表示式 {
程式碼塊
}
程式碼示例
package main
import "fmt"
func main(){
var shopping int = 1 //網上購物的編號為1,線下購物的編號為2
//當 shopping == 1的時候,選擇網上購物
if shopping == 1 {
fmt.Println("選擇網上購物,此時shopping的值為:", shopping)
}
//當 shopping == 2的時候,選擇線下購物
if shopping == 2 {
fmt.Println("選擇線下購物,此時shopping的值為:", shopping)
}
}
輸出為:選擇網上購物,此時shopping的值為: 1
在這裡,我們定義了一個變數 shopping,並賦值為1,這時候執行程式碼,程式碼會先判斷第一個 if 語句,也就是 shopping == 1 這個條件表示式所在的 if 條件句,由於符合條件,所以進入程式碼塊中;執行完程式碼塊後,程式會繼續向下執行,這時候會遇到第二個 if 語句,然後判斷 shopping是否等於2,由於shopping等於1,不符合條件,所以不進入程式碼塊中,所以不輸出,至此程式執行結束。
注意:如果第二個 if 語句的條件表示式也符合 shopping == 1的話,會進入if 程式碼塊中執行程式碼塊的內容
執行過程
多分支結構
格式
if 條件表示式 {
程式碼塊
}else {
程式碼塊
}
--------------------------------------
if 條件表示式{
程式碼塊
}else if 條件表示式{
程式碼塊
}else{
程式碼塊
}
程式碼示例
package main
import "fmt"
func main(){
var shopping int = 2 //網上購物的編號為1,其它編號都是線下購物
//當 shopping == 1的時候,選擇網上購物
//當 shopping != 1的時候,選擇線下購物
if shopping == 1 {
fmt.Println("選擇網上購物,此時shopping的值為:", shopping)
}else{
fmt.Println("選擇線下購物,此時shopping的值為:", shopping)
}
}
輸出:選擇線下購物,此時shopping的值為: 2
程式碼執行到 if 語句這裡後,判斷條件是否成立,如果成立,執行程式碼塊的程式碼;如果不成立,執行 else 語句中的內容,也就是說,除了 shopping == 1 這個條件成立會執行 **“選擇網上購物”**外,其它數字的輸入,都會走到 else語句中
package main
import "fmt"
func main(){
var shopping int = 3 //網上購物的編號為1,線下購物的編號為2,其它的都不去購物
//當 shopping == 1的時候,選擇網上購物
//當 shopping == 2的時候,選擇線下購物
if shopping == 1 {
fmt.Println("選擇網上購物,此時shopping的值為:", shopping)
}else if shopping == 2{
fmt.Println("選擇線下購物,此時shopping的值為:", shopping)
}else {
fmt.Println("不去購物了,在家躺屍比較舒服")
}
}
輸出:不去購物了,在家躺屍比較舒服
上面的語句,較 if…else 語句而言,多了 else if 語句,可以讓程式多個選擇。當執行到第一個 if 語句 shopping == 1的,由於條件不成立,繼續向下執行,執行到 else if 語句,這個語句的條件是 shopping == 2,也不成立,執行 else 語句中的程式碼
如果有多個 else if 語句,那麼只要前面的不匹配,就會執行下面的 else if,直到沒有 else if為止,那麼久執行 else
執行過程
第一份程式碼的圖
第二份程式碼的圖
巢狀分支結構
程式碼示例
package main
import "fmt"
func main(){
//宣告三個個變數,分別代表了數學成績,英語成績還有年齡
var mathScore int = 88
var englishScore int = 90
var age int = 18
//只要有一個科目的成績在90分以上就評為優秀,這時候要是年齡小於等於18,那麼可以多個獎狀
if mathScore >= 90 || englishScore >= 90{
fmt.Println("優秀")
if age <= 18 {
fmt.Println("獎勵獎狀一張")
}
} else {
fmt.Println("幹什麼吃的,沒一科考到90+")
}
}
輸出:優秀(此處在列印的時候,是有換行的)獎勵獎狀一張
巢狀分支,其實跟其它分支是差不多的,它只是在分支裡面,還巢狀了條件判斷語句
switch 語句
Go中的 switch語句,跟其它語句還是略有些區別的:
-
執行完 case 後,不用呼叫 break關鍵字,來讓程式跳出 switch 語句,因為在每個case後面,都會預設加一個 break關鍵字
-
要想匹配完一個語句後,繼續執行下面的case,只要使用關鍵字 fallthrough即可,無論下面的case是否匹配上,都會執行 fallthrough語句下面的 case中的內容
-
case 後面的型別,要跟 switch中的型別匹配,下面程式碼的 expr的型別要保持一致
switch expr { case expr }
-
default 在這裡可有可無
-
switch 後面可以是任意型別
程式碼示例
不帶 fallthrough關鍵字
package main
import "fmt"
func main() {
//定義一個變數,來代表成績
var score int64 = 90
switch {
case score >= 90:
fmt.Println("優秀")
case score >= 80 && score < 90:
fmt.Println("良好")
default:
fmt.Println("一般")
}
}
輸出結果:優秀
帶 fallthrough關鍵字
package main
import "fmt"
func main() {
//定義一個變數,來代表成績
var score int64 = 99
switch {
case score > 90:
fmt .Println("優秀")
fallthrough
case score >= 80 && score < 90:
fmt.Println("良好")
default:
fmt.Println("一般")
}
}
輸出:優秀(此處在列印的時候,是有換行的)良好
是不是很奇怪,明明 fallthrough後面的case條件明明不匹配,但他就是執行了,可能是因為名字中有 through這個詞的原因吧,表示穿過(這個是我瞎說的,不要當真)
補充
if 和 switch語句後面可以帶個初始化語句,如下
package main
import "fmt"
func main() {
switch score := 99;{
case score >= 90:
fmt .Println("優秀")
fallthrough
case score >= 80 && score < 90:
fmt.Println("良好")
default:
fmt.Println("一般")
}
}
分號後面,才是下面要 switch後面要跟的型別,而 if語句中的初始化也是跟這個一樣
歡迎大家關注下個人的「公眾號」:獨醉貪歡
相關文章
- 條件判斷語句 if case
- makefile--if條件判斷語句的語法與使用
- Java中的條件判斷語句-動力節點Java
- 最簡潔的python條件判斷語句寫法Python
- 判斷語句的使用
- MySQL條件判斷IF,CASE,IFNULL語句詳解MySqlNull
- Python中if條件判斷語句怎麼用?Python
- GO 條件語句Go
- python兩種簡潔的條件判斷語句寫法Python
- Go:條件控制語句Go
- python基礎之如何用if語句判斷多個條件?Python
- C語言中迴圈語句while 中判斷條件出現 || 和 && 的區別C語言While
- python迴圈語句判斷的使用Python
- JS的判斷語句:判斷、迴圈JS
- 『忘了再學』Shell流程控制 — 34、if條件判斷語句(二)
- 『忘了再學』Shell流程控制 — 33、if條件判斷語句(一)
- Go 條件語句 - Go 學習記錄Go
- php中條件語句的使用整理PHP
- 判斷語句
- 前端筆記之JavaScript(三)關於條件判斷語句、迴圈語句那點事前端筆記JavaScript
- 【SHELL】Shell中的條件判斷
- C++ 條件與 If 語句:掌握邏輯判斷與流程控制精髓C++
- 條件語句
- oracle中的條件語句Oracle
- C 判斷語句
- 012 判斷語句
- Grovvy-條件判斷
- 六、Vue條件判斷Vue
- 寫給.NET開發者的Python教程(三):運算子、條件判斷和迴圈語句Python
- python中if條件語句對於布林值和非布林值的判斷結果Python
- 前端筆記之JavaScript(二)關於運算子&初識條件判斷語句前端筆記JavaScript
- javaScript條件語句JavaScript
- python之判斷語句Python
- 【Golang 基礎系列十】Go 語言 條件語句之ifGolang
- exercise001_條件判斷
- 7.Makefile中的條件語句
- Nginx實現IF語句裡的AND,OR多重判斷Nginx
- 04.條件語句