Bài tập Go
FizzBuzz in Go
The classic interview warm-up, solved with a switch.
Bạn sẽ học được gì
- switch without a value
- Order of the cases
- strings.Join
1 to 6
11
22
Fizz3
44
Buzz5
Fizz6
Check 15 first
Print the numbers from 1 to 15, but print Fizz for multiples of 3, Buzz for multiples of 5 and FizzBuzz for multiples of both.
A switch without a value runs the first case that is true, so the check for 15 must come first. strconv.Itoa turns a number into a string, and strings.Join puts the words on one line.
Những điểm quan trọng
- The first true case runs.
- n%15 must come before n%3 and n%5.
strconv.Itoaturns a number into text.
Ví dụ Go chạy được
main.go
package main
import (
"fmt"
"strconv"
"strings"
)
func fizzbuzz(n int) string {
switch {
case n%15 == 0:
return "FizzBuzz"
case n%3 == 0:
return "Fizz"
case n%5 == 0:
return "Buzz"
default:
return strconv.Itoa(n)
}
}
func main() {
words := make([]string, 0, 15)
for n := 1; n <= 15; n++ {
words = append(words, fizzbuzz(n))
}
fmt.Println(strings.Join(words, " "))
}
1 2 Fizz 4 Buzz Fizz 7 8 Fizz Buzz 11 Fizz 13 14 FizzBuzzLuyện tập
Mở ví dụ trong trình biên dịch online, đổi một giá trị hoặc thêm một dòng, rồi đoán kết quả trước khi chạy. Sau đó cố ý làm code bị lỗi và đọc thông báo của trình biên dịch.
Bạn học xong bài này chưa?
Đánh dấu đã học để theo dõi tiến độ của bạn.
Tiến độ của bạn đang được lưu trong trình duyệt này Đăng nhập để giữ tiến độ trên mọi thiết bị.
Luyện tập với thử thách
Áp dụng kiến thức của bài học này để giải một bài toán thực tế. Mỗi thử thách chạy ngay trên trình duyệt, có kiểm thử tức thì và AI nhận xét.
Tất cả thử thách