Menu
CoddyTech

Thử thách: FizzBuzz

Thuộc phần Logic và luồng điều khiển trong hành trình Dart của Coddy. Bài học 65 trên 65.

challenge icon

Thử thách

Dễ

Tạo một chương trình thực hiện thử thách FizzBuzz kinh điển bằng cấu trúc vòng lặp (loop) và logic điều kiện phù hợp. Thử thách này kiểm tra khả năng kết hợp vòng lặp, câu lệnh điều kiện (conditional statement) và toán tử modulo (modulo operator) để giải một bài toán lập trình quen thuộc.

Nhiệm vụ của bạn:

  1. Dùng vòng lặp for để duyệt các số từ 1 đến 50 (bao gồm cả 1 và 50)
  2. Với mỗi số, áp dụng lần lượt các quy tắc sau:
    • Nếu số đó chia hết cho cả 3 và 5, in ra FizzBuzz
    • Nếu số đó chỉ chia hết cho 3, in ra Fizz
    • Nếu số đó chỉ chia hết cho 5, in ra Buzz
    • Nếu số đó không chia hết cho 3 hoặc 5, in chính số đó
  3. In mỗi kết quả trên một dòng riêng
  4. Dùng toán tử modulo (%) để kiểm tra tính chia hết
  5. Sắp xếp các câu lệnh điều kiện bằng if, else if và else theo đúng thứ tự

Một vài dòng đầu tiên trong đầu ra của bạn sẽ trông như sau:

1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz

Để giải FizzBuzz chính xác, điều quan trọng là bạn phải kiểm tra trường hợp “cả hai điều kiện” (chia hết cho cả 3 và 5) trước, rồi mới kiểm tra từng điều kiện riêng. Một số chia hết cho số khác nếu số dư khi chia cho số đó bằng không.

Chương trình của bạn cần thể hiện cách dùng vòng lặp để lặp qua các lần, toán tử modulo để kiểm tra tính chia hết, và các câu lệnh điều kiện được sắp xếp theo đúng thứ tự logic để xử lý mọi trường hợp có thể xảy ra.

Tự làm thử

void main() {
  // TODO: Viết code của bạn bên dưới
  // Dùng vòng lặp for để lặp từ 1 đến 50
  // Kiểm tra tính chia hết bằng toán tử (operator) chia lấy dư (%)
  // Nhớ kiểm tra số chia hết cho cả 3 và 5 trước, rồi mới kiểm tra từng điều kiện (condition) riêng
  
  // In mỗi kết quả trên một dòng riêng
}

Tất cả bài học trong Logic và luồng điều khiển

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