Menu
CoddyTech

Vòng lặp while

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

Trong khi vòng lặp for lặp qua một dãy đã xác định trước, vòng lặp while tiếp tục chạy miễn là một điều kiện vẫn là TRUE. Cách này hữu ích khi bạn chưa biết trước cần lặp lại một việc bao nhiêu lần.

count <- 1
while (count <= 3) {
  print(count)
  count <- count + 1
}

Đầu ra:

[1] 1
[1] 2
[1] 3

Vòng lặp kiểm tra điều kiện count <= 3 trước mỗi lần lặp. Khi count trở thành 4, điều kiện là FALSE và vòng lặp dừng lại.

Quan trọng: Bạn phải cập nhật biến bên trong vòng lặp. Nếu không có count <- count + 1, điều kiện sẽ luôn là TRUE, tạo ra một vòng lặp vô hạn không bao giờ kết thúc.

total <- 0
num <- 1
while (num <= 5) {
  total <- total + num
  num <- num + 1
}
print(total)

Đầu ra:

[1] 15

Ví dụ này cộng các số từ 1 đến 5, kết quả là 15. Vòng lặp while phù hợp khi điểm dừng phụ thuộc vào một điều kiện thay vì một chuỗi cố định.

challenge icon

Thử thách

Dễ

Đọc một số n từ đầu vào. Dùng vòng lặp while để tính và in ra tổng của tất cả các số từ 1 đến n.

Bắt đầu với một biến để theo dõi tổng hiện tại và một biến khác làm bộ đếm. Tiếp tục cộng vào tổng khi bộ đếm nhỏ hơn hoặc bằng n, đồng thời tăng bộ đếm sau mỗi lần lặp.

Sau khi vòng lặp kết thúc, dùng print() để in ra tổng cuối cùng.

Ví dụ, nếu đầu vào là 5, đầu ra sẽ là:

[1] 15

Đó là vì 1 + 2 + 3 + 4 + 5 = 15.

Tự làm thử

# Đọc đầu vào
con <- file("stdin", "r")
n <- as.integer(suppressWarnings(readLines(con, n = 1)))

# Khởi tạo các biến
total <- 0
counter <- 1

# TODO: Viết vòng lặp while bên dưới để tính tổng từ 1 đến n


# In ra kết quả
print(total)
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 R online