Menu
CoddyTech

Break

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 40 trên 78.

Đôi khi bạn cần thoát khỏi vòng lặp sớm, trước khi vòng lặp hoàn thành tất cả các lần lặp. Câu lệnh break cho phép bạn dừng vòng lặp ngay lập tức khi một điều kiện cụ thể được đáp ứng.

for (i in 1:10) {
  if (i == 5) {
    break
  }
  print(i)
}

Đầu ra:

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

Vòng lặp được đặt để chạy từ 1 đến 10, nhưng khi i đạt đến 5, câu lệnh break dừng hẳn vòng lặp. Lưu ý rằng số 5 không được in ra vì break thoát ngay lập tức.

Điều này đặc biệt hữu ích với vòng lặp while khi tìm kiếm một thứ gì đó:

num <- 1
while (TRUE) {
  if (num * num > 20) {
    break
  }
  num <- num + 1
}
print(num)

Đầu ra:

[1] 5

Ở đây, while (TRUE) thường sẽ chạy mãi, nhưng break dừng vòng lặp khi ta tìm thấy số đầu tiên có bình phương lớn hơn 20. Cách làm này thường dùng khi bạn cần tìm kiếm cho đến khi một điều kiện được thỏa mãn.

challenge icon

Thử thách

Dễ

Đọc một số limit từ đầu vào. Dùng vòng lặp for để lặp từ 1 đến limit, nhưng dừng vòng lặp sớm bằng break khi gặp số đầu tiên chia hết cho cả 3 và 7.

In ra từng số trước khi kiểm tra điều kiện. Khi tìm thấy số chia hết cho cả 3 và 7, hãy in số đó rồi thoát khỏi vòng lặp.

Sau khi vòng lặp kết thúc, dùng print() để in ra "Loop ended".

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

[1] 1
[1] 2
[1] 3
[1] 4
[1] 5
[1] 6
[1] 7
[1] 8
[1] 9
[1] 10
[1] 11
[1] 12
[1] 13
[1] 14
[1] 15
[1] 16
[1] 17
[1] 18
[1] 19
[1] 20
[1] 21
[1] "Loop ended"

Vòng lặp dừng ở 21 vì đó là số đầu tiên chia hết cho cả 3 và 7 (21 = 3 × 7).

Tự làm thử

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

# TODO: Viết code bên dưới
# Dùng vòng lặp for từ 1 đến limit
# In từng số trước khi kiểm tra điều kiện
# Thoát vòng lặp khi tìm thấy một số chia hết cho cả 3 và 7
# Gợi ý: Dùng toán tử %% để kiểm tra tính chia hết


# In "Loop ended" sau vòng lặp
print("Loop ended")
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