← Danh sách bài học Bài 5/20

🔀 Bài 5: Cấu Trúc Điều Kiện If/Else

⏱️ 20 phút | 📚 Dễ

🎯 Mục tiêu:

1. Câu Lệnh If

Kiểm tra điều kiện và thực hiện code nếu điều kiện đúng.

package main
import "fmt"

func main() {
    age := 20
    
    if age >= 18 {
        fmt.Println("Bạn đã trưởng thành")
    }
}
⚠️ Lưu ý: Go KHÔNG cần dấu ngoặc đơn () quanh điều kiện, nhưng BẮT BUỘC phải có {}

2. If-Else

age := 15

if age >= 18 {
    fmt.Println("Trưởng thành")
} else {
    fmt.Println("Chưa trưởng thành")
}

3. If-Else If-Else

score := 75

if score >= 90 {
    fmt.Println("Xuất sắc - A")
} else if score >= 80 {
    fmt.Println("Giỏi - B")
} else if score >= 70 {
    fmt.Println("Khá - C")
} else if score >= 60 {
    fmt.Println("Trung bình - D")
} else {
    fmt.Println("Yếu - F")
}
// Output: Khá - C

4. If Với Short Statement

Go cho phép khai báo biến ngay trong câu lệnh if.

// Khai báo num trong if, chỉ tồn tại trong block này
if num := 10; num > 5 {
    fmt.Println(num, "lớn hơn 5")
}
// fmt.Println(num) // Lỗi! num không tồn tại ở đây

// Ví dụ thực tế: kiểm tra lỗi
if err := doSomething(); err != nil {
    fmt.Println("Có lỗi:", err)
}

5. Switch Case

Switch gọn gàng hơn nhiều if-else khi so sánh một giá trị.

day := 3

switch day {
case 1:
    fmt.Println("Thứ Hai")
case 2:
    fmt.Println("Thứ Ba")
case 3:
    fmt.Println("Thứ Tư")
case 4:
    fmt.Println("Thứ Năm")
case 5:
    fmt.Println("Thứ Sáu")
case 6, 7:  // Gộp nhiều case
    fmt.Println("Cuối tuần")
default:
    fmt.Println("Ngày không hợp lệ")
}
💡 Go tự động break: Không cần viết break như C/Java. Nếu muốn "rơi" xuống case tiếp, dùng fallthrough.

6. Switch Không Có Biểu Thức

hour := 14

switch {
case hour < 12:
    fmt.Println("Buổi sáng")
case hour < 18:
    fmt.Println("Buổi chiều")
default:
    fmt.Println("Buổi tối")
}
// Output: Buổi chiều

📝 Tóm Tắt