日韩性视频-久久久蜜桃-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)的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 国产午夜精品免费一区二区三区视频 | 黑人干亚洲女 | 亚洲视频网址 | 99这里有精品 | 蜜桃av成人永久免费 | av色区| 成人免费观看视频大全 | 国产免费网 | 一区二区三区视频免费观看 | 成人hd| 色涩色 | 亚洲午夜福利在线观看 | 国产在线看片 | 一区二区三区人妻 | 国产情侣久久 | 国产精品久久久久久久久久久不卡 | 狠狠操很很干 | www.久久久久久久久久 | 日韩一级二级三级 | 涩av | av日日操| 裸体黄色片 | 另类小说五月天 | 亚洲国产天堂av | 性欧美18一19内谢 | 国产精品自在线 | 人妻少妇偷人精品久久性色 | 日本一区免费电影 | 波多野结衣爱爱 | 亚洲性欧美| 久久性爱视频网站 | 少妇av导航 | 日韩视频在线一区 | 手机看片日韩欧美 | 秋霞福利网 | www.成人在线视频 | 午夜一级视频 | av三级网站 | 侵犯亲女在线播放视频 | 尤物av在线| 国产99久一区二区三区a片 | 亚洲综合伊人久久 | 三年在线观看视频 | 福利二区| 亚洲综合色在线观看 | 激情五月婷婷丁香 | 国产成人黄色av | 久久久久久久久久网 | 一本大道东京热无码 | 国产亚洲一区二区不卡 | 加勒比在线免费视频 | 伊人婷婷色 | 在线观看毛片视频 | 国产99在线 | 性中国古装videossex | 国内免费毛片 | 黑人巨大猛交丰满少妇 | 在线免费观看av的网站 | 日韩精品av一区二区三区 | 91亚洲精品国偷拍自产在线观看 | 经典一区二区三区 | 婷婷五月精品中文字幕 | 日韩精品一区二区三区国语自制 | 国产一区免费在线观看 | 不用播放器av | 欧美黄色片网站 | 久久1234| 超碰伦理| 丁香激情五月 | 黄色av电影在线 | av中文字幕在线免费观看 | 日本黄网在线观看 | 大陆极品少妇内射aaaaa | 国产伦精品一区二区三区视频免费 | 热久久免费| 久久中字 | 麻豆网站视频 | 韩国主播青草55部完整 | 国产在线xx | 中文字幕中文在线 | 午夜免费视频网站 | 欧美黑人狂野猛交老妇 | 9色视频 | 亚洲一区二区中文字幕 | 99热这里只有精 | 波多野结衣一区二区三区免费视频 | www.超碰在线观看 | 国产又粗又猛又爽又黄av | 国产成人手机在线 | 国产精品久久久毛片 | 久久久成 | va在线视频 | 综合网中文字幕 | 色五夜 | 欧美成人手机在线视频 | 青青草视频污 | 久久国产色| 久操免费在线视频 | 樱花视频在线观看 |