1、if條件判斷
1.1、if條件判斷的基本語法
個其他語言差不多,go中if語句後面的條件判斷可以加括號,也可以不加,通常不寫括號,但是如果條件比較複雜,建議加上括號。
age := 10
//1、加括号
if age > 18 {
fmt.Println("你已经成年了")
}
//2、不加括号
if (age > 18){
fmt.Println("你已经成年了")
}
1.2、if else語句
age := 10
if age > 18 {
fmt.Println("你已经成年了")
} else {
fmt.Println("你还没有成年")
}
// else if
if age > 20 {
fmt.Println("你已经成年了")
} else if a18 > 16 {
fmt.Println("你已经成年了")
} else {
fmt.Println("你还没有成年")
}
2、for迴圈
go中沒有while迴圈,只有for迴圈
2.1、for迴圈的基本語法
//基础写法
for i := 0; i < 10; i++ {
fmt.Println(i)
}
//注意不能加括号
//for循环代替while循环
var i int = 0
for {
if i > 10 {
break
}
fmt.Println(i)
i++
}
2.2、for迴圈使用舉例
2.2.1、使用for迴圈列印1-100之間的所有偶數
for i := 1; i <= 1--; i++{
if i % 2 == 0{
fmt.Println(i)
}
}
2.2.2、使用for迴圈列印九九乘法表
for i := 1; i <= 9; i++{
for j := 1; j <= i; j++{
fmt.Printf("%d * %d = %d\t", j, i, i * j)
}
fmt.Println()
}
2.3、for range介紹和使用
for range 主要對於陣列、切片、字串、map、通道等進行迭代迴圈,返回的是索引和值。
name := "hello go, hello world"
for index, value := range name {
fmt.Printf("index = %d, value = %c\n", index, value)
}
for _, value := range name {
fmt.Printf("value = %c\n", value)
}
for index := range name {
fmt.Printf("index = %d\n", index)
fmt.Printf("value = %c\n", name[index])
}
注意:
2.4、for迴圈的退出
使用break和continue來退出迴圈。
continue 用於跳過當前迴圈的剩餘語句,然後繼續執行下一次迴圈。
break 用於跳出當前迴圈,執行迴圈之後的語句。
3、goto語句
goto語句可以讓我們的程式碼跳轉到指定的程式碼塊中執行,但是不建議使用goto語句,因為goto語句會讓程式碼的可讀性變差,而且也會讓程式碼的維護變得困難。
go語言中的goto語句可以實現程式的跳轉,goto語句使用最多的是程式的錯誤處理,當程式處理錯誤時,跳轉到相應的標籤處統一處理。
for i := 0; i < 10; i++ {
for j := 0; j < 10; j++ {
if j == 5 {
goto over
}
fmt.Println(i, j)
}
}
//任意代码块
over:
fmt.Println("over")
//代码直接跳转到over代码块中运行
4、switch語句
switch語句用於根據不同的條件執行不同的程式碼塊,它可以替代多個if else語句。
提升程式碼的可讀性
//基础写法
switch var1{
case val1:
...
case val2:
...
default:
...
}
//举例--中文的星期几,输出对应的英文
day := "星期一"
switch dat{
case "星期一":
fmt.Println("Monday")
case "星期二":
fmt.Println("Tuesday")
case "星期三":
fmt.Println("Wednesday")
case "星期四":
fmt.Println("Thursday")
case "星期五":
fmt.Println("Friday")
case "星期六":
fmt.Println("Saturday")
case "星期日":
fmt.Println("Sunday")
default:
fmt.Println("Unknown")
}
siwtch {
case day == "星期一":
fmt.Println("Monday")
case day == "星期二":
fmt.Println("Tuesday")
case day == "星期三":
fmt.Println("Wednesday")
case day == "星期四":
fmt.Println("Thursday")
case day == "星期五":
fmt.Println("Friday")
case day == "星期六":
fmt.Println("Saturday")
case day == "星期日":
fmt.Println("Sunday")
default:
fmt.Println("Unknown")
}
score := 90
switch {
case score >= 90:
fmt.Println("A")
case score >= 80:
fmt.Println("B")
case score >= 70:
fmt.Println("C")
case score >= 60:
fmt.Println("D")
default:
fmt.Println("E")
}
注意:Go語言的switch語句不需要break關鍵字來終止每個case。如果不使用break,執行完一個case後,程式會自動退出switch語句。
