← 返回文章列表

golang學習記錄(6)

Go 基礎學習系列第 6 篇,記錄語法、示例與學習過程。

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])
}

注意: go

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語句。

關於這篇文章的日期

保留舊站原始文章標註的日期;實際開始寫作的時間可能更早。

原始日期: 2024-10-16 20:38:47 +0800

同一系列 · Go 基礎學習

上一篇golang學習記錄(5) ←下一篇golang學習記錄(7) →