Menu
CoddyTech

`switch` có biểu thức

Thuộc phần Kiến thức nền tảng trong hành trình GO của Coddy. Bài học 40 trên 109.

Hãy cùng tìm hiểu cách dùng biểu thức trong câu lệnh switch ở Go, cho phép ta đánh giá điều kiện trực tiếp trong từng case.

Đầu tiên, hãy xem cách dùng câu lệnh switch với một điều kiện trong mỗi case để kiểm tra xem một số là số dương, số âm hay số 0:

num := -5
switch {
case num > 0:
    fmt.Println("Positive number")
case num < 0:
    fmt.Println("Negative number")
default:
    fmt.Println("Zero")
}

Sau khi chạy đoạn code này, chương trình sẽ hiển thị trên màn hình:

Negative number

Lưu ý rằng ta dùng switch { mà không có giá trị theo sau. Điều này có nghĩa là Go sẽ đánh giá từng biểu thức (expression) trong case như một điều kiện (condition) đúng hoặc sai. Vì num là -5, case thứ hai num < 0 cho kết quả đúng, nên "Negative number" sẽ được in ra.

Chúng ta cũng có thể khởi tạo một biến ngay trong câu lệnh switch. Hãy xem cách hoạt động của nó:

switch num := -5; {
case num > 0:
    fmt.Println("Positive number")
case num < 0:
    fmt.Println("Negative number")
default:
    fmt.Println("Zero")
}

Sau khi chạy đoạn code này, ta nhận được cùng một kết quả:

Negative number

Trong ví dụ này, chúng ta khai báo và khởi tạo num ngay trong câu lệnh switch. Dấu chấm phẩy phân tách phần khởi tạo với biểu thức switch (ở đây phần biểu thức để trống). Cách này giúp code ngắn gọn hơn mà vẫn giữ nguyên chức năng.

challenge icon

Thử thách

Người mới
Trong thử thách này, bạn sẽ luyện tập dùng biểu thức switch đơn giản trong Go. Bạn cần hoàn thành đoạn code để xác định mô tả ngày dựa trên tên ngày bằng câu lệnh switch.

Biến dayName đã được khai báo với giá trị "Wednesday". Nhiệm vụ của bạn là dùng biểu thức switch để gán cho biến description:
- "Start of the week" nếu là thứ Hai
- "Midweek" nếu là thứ Tư
- "Almost weekend" nếu là thứ Sáu
- "Weekend" nếu là thứ Bảy hoặc Chủ nhật
- "Regular day" nếu là ngày khác

Tự làm thử

	// TODO: Viết câu lệnh switch để gán giá trị cho description dựa trên dayName
	// Với thứ Hai: "Start of the week"
	// Với thứ Tư: "Midweek"
	// Với thứ Sáu: "Almost weekend"
	// Với thứ Bảy hoặc Chủ nhật: "Weekend"
	// Với ngày khác: "Regular day"
	
	
	// In ra kết quả
	fmt.Printf("%s is %s\n", dayName, description)
quiz iconTự kiểm tra

Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.

Tất cả bài học trong Kiến thức nền tảng

Tự luyện tập: Trình biên dịch Go online