Menu
CoddyTech

Ôn tập: bộ lặp tùy chỉnh

Thuộc phần Logic và luồng xử lý trong hành trình Ruby của Coddy. Bài học 20 trên 56.

Hãy tạo phương thức trình lặp của riêng bạn, sử dụng yield, nhận một khối lệnh và trả về một giá trị hữu ích, kết hợp mọi thứ trong chương này.

challenge icon

Thử thách

Trung bình

Định nghĩa một phương thức có tên each_even, nhận một mảng numbers và chuyển từng số chẵn trong mảng vào khối lệnh của nó (bỏ qua hoàn toàn các số lẻ).

Sau đó, đọc một danh sách số nguyên được phân tách bằng dấu phẩy, gọi each_even với danh sách đó và một khối lệnh in ra "Even: <n>" cho mỗi giá trị được chuyển vào, rồi in ra:

Done: <count>

Trong đó, count là số lượng số chẵn đã được chuyển vào.

Với đầu vào 1,2,3,4,5,6, đầu ra là:

Even: 2
Even: 4
Even: 6
Done: 3

Tự làm thử

# TODO: định nghĩa each_even(numbers) để yield từng số chẵn

numbers = gets.chomp.split(",").map(&:to_i)
count = 0

# TODO: gọi each_even với một khối lệnh (block) in ra "Even: <n>"
# và tăng count sau mỗi giá trị được yield

puts "Done: #{count}"

Tất cả bài học trong Logic và luồng xử lý

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