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] 3Vò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] 15Ví 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.
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)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
4Toán tử phần 2
Toán tử logic (AND, OR)Toán tử logic phần 2 (NOT)Ôn tập: logic đơn giảnLogic vector hóa phần 1Logic vector hóa phần 22Biến và kiểu dữ liệu
Kiểu dữ liệu sốKiểu dữ liệu số nguyênKiểu dữ liệu ký tựKiểu dữ liệu logicKiểm tra kiểu dữ liệuQuy tắc đặt tênGiá trị thiếu: NATóm tắt: tạo biến8Vòng lặp
Vòng lặp forVòng lặp whileBreakNext (continue)Ôn tập: giai thừaTạo dãy (seq, :)Vòng lặp lồng nhauÔn tập: đầu vào động3Toán tử phần 1
Toán tử số họcPhép chia lấy phần nguyên và phép moduloToán tử gánÔn tập: phép tính đơn giảnToán tử so sánh6Nhập xuất cơ bản
In đầu raDùng cat để in đầu raĐầu ra với biếnĐọc đầu vào bằng readline()Cơ bản về chuyển đổi kiểuÔn tập: máy tính tuổiÔn tập: đúng hay sai9Hàm
Khai báo hàmĐối số hàmGiá trị trả vềÔn tập: hàm SigmaÔn tập: hàm xác thựcGiá trị tham số mặc địnhTự luyện tập: Trình biên dịch R online