日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

Go 学习笔记(8)— 条件语句(if、if...else...、switch、fallthrough)

發布時間:2023/11/27 生活经验 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Go 学习笔记(8)— 条件语句(if、if...else...、switch、fallthrough) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Go 語言提供了以下幾種條件判斷語句:

語句描述
if 語句if 語句 由一個布爾表達式后緊跟一個或多個語句組成
if…else 語句if 語句 后可以使用可選的 else 語句, else 語句中的表達式在布爾表達式為 false 時執行
if 嵌套語句你可以在 if 或 else if 語句中嵌入一個或多個 if 或 else if 語句
switch 語句switch 語句用于基于不同條件執行不同動作
select 語句select 語句類似于 switch 語句,但是select會隨機執行一個可運行的case。如果沒有case可運行,它將阻塞,直到有case可運行

1. if 語句

Go 語言中 if 語句的語法如下:

if 布爾表達式 {/* 在布爾表達式為 true 時執行 */
}

示例:

package mainimport "fmt"func main() {/* 定義局部變量 */var a int = 10/* 使用 if 語句判斷布爾表達式 */if a < 20 {/* 如果條件為 true 則執行以下語句 */fmt.Printf("a 小于 20\n" )}fmt.Printf("a 的值為 : %d\n", a)
}

if 語句特點:

  1. if 后面的條件判斷子句不需要用小括號括起來;

  2. 必須放在行尾,和 if 或者 else if 放在一行;

  3. if 后面可以帶一個簡單的初始化語句,并以分號分割,該簡單語句聲明的變量的作用域是整個 if 語句塊,包括后面的 else ifelse 分支;

  4. if 分支語句遇到 return 后直接返回,遇到 break 則跳過 break 下方的 if 語句塊;

if 還有一種特殊的寫法,可以在 if 表達式之前添加一個執行語句,再根據變量值進行判斷,代碼如下:

if x :=f(); x<y{  // 初始化語句中的聲明變量xreturn x
} else if x > z {  // x 在else if 里面一樣可以被訪問return z
} else {return y
}

f() 是一個帶有返回值的函數, x := f() 是一個語句,執行 f() 后,將返回值保持在變量 x 中。 x<y 才是 if 的判斷表達式,這種寫法可以將返回值與判斷放在一行進行處理,而且返回值的作用范圍被限制在 if、else 語句組合中。

2. if…else… 語句

Go 語言中 if...else... 語句的語法如下:

if 布爾表達式 {/* 在布爾表達式為 true 時執行 */
} else {/* 在布爾表達式為 false 時執行 */
}

示例:

package mainimport "fmt"func main() {/* 局部變量定義 */var a int = 100;/* 判斷布爾表達式 */if a < 20 {/* 如果條件為 true 則執行以下語句 */fmt.Printf("a 小于 20\n" );} else {/* 如果條件為 false 則執行以下語句 */fmt.Printf("a 不小于 20\n" );}fmt.Printf("a 的值為 : %d\n", a);}

3. if 語句嵌套

Go 語言中 if 嵌套語句的語法如下:

if 布爾表達式 1 {/* 在布爾表達式 1 為 true 時執行 */if 布爾表達式 2 {/* 在布爾表達式 2 為 true 時執行 */}
}

示例:

package mainimport "fmt"func main() {/* 定義局部變量 */var a int = 100var b int = 200/* 判斷條件 */if a == 100 {/* if 條件語句為 true 執行 */if b == 200 {/* if 條件語句為 true 執行 */fmt.Printf("a 的值為 100 , b 的值為 200\n" );}}fmt.Printf("a 值為 : %d\n", a );fmt.Printf("b 值為 : %d\n", b );
}

4. switch 語句

  1. switchif 語句一樣, switch 后面可以帶一個可選的簡單的初始化語句;

  2. switch 后面的表達式也是可選的,如果沒有表達式, 則 case 子句是一個布爾表達式,而不是一個值,此時就相當于多重 if else 語句;

  3. switch 條件表達式的值不像 C/C++ 語言那樣必須限制為整數常量, 表達式不需要為常量,甚至不需要為整數,可以是任意支持相等比較運算的類型變量;

  4. switch 語句用于基于不同條件執行不同動作,每一個 case 分支都是唯一的,從上至下逐一測試,直到匹配為止;

  5. switch 語句執行的過程從上至下,直到找到匹配項,匹配項后面也不需要再加 break

  6. switch 默認情況下 case 最后自帶 break 語句,匹配成功后就不會執行其他 case,如果我們需要執行后面的 case,可以使用 fallthrough

  7. switch 支持 default 語句, 當所有的 case 分支都不符合時, 執行 default 語句, 并且 default 語句可以放到任意位置,并不影響 switch 的判斷邏輯;

Go 語言中 switch 語句的語法如下:

switch i:= "y", i {	// switch 后面可以帶上一個初始化語句case "y", "Y":	// 多個 case 值使用逗號隔開Println("Yes")case "n", "N":Println("No")
}switch var1 {case value1:...case value2:...default:...
}

變量 var1 可以是任何類型,而 value1value2 則可以是同類型的任意值。類型不被局限于常量或整數,但必須是相同的類型,或者最終結果為相同類型的表達式。

可以同時測試多個可能符合條件的值,使用逗號分割它們,例如:case val1, val2, val3

示例:

package mainimport "fmt"func main() {/* 定義局部變量 */var grade string = "B"var marks int = 90switch marks {case 90:grade = "A"case 80:grade = "B"case 50, 60, 70:grade = "C"default:grade = "D"}switch {// case 后不僅僅只是常量,還可以和 if 一樣添加表達式// 注意,這種情況的 switch 后面不再需要跟判斷變量。case grade == "A":	fmt.Printf("優秀!\n")case grade == "B", grade == "C":fmt.Printf("良好\n")case grade == "D":fmt.Printf("及格\n")case grade == "F":fmt.Printf("不及格\n")default:fmt.Printf("差\n")}fmt.Printf("你的等級是 %s\n", grade)
}

輸出結果:

優秀!
你的等級是 A

5. fallthrough

Go 語言中 case 是一個獨立的代碼塊,執行完畢后不會像 C 語言那樣緊接著執行下一個 case ,但是為了兼容一些移植代碼,依然加入了 fallthrough 關鍵字來實現這一功能。

使用 fallthrough 會強制執行后面的 case 語句, fallthrough 不會判斷下一條 case 的表達式結果是否為 true。代碼如下:

package mainimport "fmt"func main() {switch {case false:fmt.Println("1、case 條件語句為 false")fallthroughcase true:fmt.Println("2、case 條件語句為 true")fallthroughcase false:fmt.Println("3、case 條件語句為 false")fallthroughcase true:fmt.Println("4、case 條件語句為 true")case false:fmt.Println("5、case 條件語句為 false")fallthroughdefault:fmt.Println("6、默認 case")}
}

輸出結果:

2、case 條件語句為 true
3、case 條件語句為 false
4、case 條件語句為 true

總結

以上是生活随笔為你收集整理的Go 学习笔记(8)— 条件语句(if、if...else...、switch、fallthrough)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。