Chuyển đến nội dung chính
Mô-đun 5 · Bài học 3 trong tổng số 419/32 trong khóa học~10 min
Bài học theo mô-đun (3/4)

phá vỡ và tiếp tục

Hai từ nhỏ rất hữu ích bên trong một vòng lặp:

  • break thoát khỏi vòng lặp trong cùng ngay lập tức.
  • continue chuyển sang lần lặp tiếp theo mà không thực thi phần còn lại của nội dung.

break: thoát sớm

Điển hình cho việc "tìm cái đầu tiên thỏa mãn điều kiện":

JS
function primoNegativo(nums) {
  for (const n of nums) {
    if (n < 0) return n; // o: result = n; break;
  }
  return undefined;
}

primoNegativo([3, 7, -2, 4, -9]); // -2

Ví dụ với break rõ ràng:

JS
let trovato = -1;
const nums = [10, 20, 30, 40, 50];
for (let i = 0; i < nums.length; i++) {
  if (nums[i] === 30) {
    trovato = i;
    break;
  }
}
trovato; // 2

continue: chuyển sang phần tiếp theo

Khi một phần tử không thú vị nhưng bạn muốn tiếp tục lặp lại:

JS
function sommaPari(nums) {
  let totale = 0;
  for (const n of nums) {
    if (n % 2 !== 0) continue; // salta i dispari
    totale += n;
  }
  return totale;
}

sommaPari([1, 2, 3, 4, 5, 6]); // 12

Trong nhiều trường hợp, if (cond) { ... } sẽ tương đương; continue giúp ích khi cơ thể dài và bạn muốn giữ cho dòng chảy ổn định (ít lồng nhau).

Hãy thử nó

tập thể dục#js.m5.l3.e1
Nỗ lực: 0Đang tải…

Xác định `firstGreater(nums, ngưỡng)` trả về phần tử đầu tiên của nums lớn hơn ngưỡng hoàn toàn hoặc không xác định nếu không có. Sử dụng break (hoặc quay lại ngay lập tức).

Đang tải trình chỉnh sửa…
Hiển thị gợi ý

Một return bên trong for hoạt động như break + return cùng một lúc.

Giải pháp khả dụng sau 3 lần thử

Xem lại bài tập

tập thể dục#js.m5.l3.e2
Nỗ lực: 0Đang tải…

Xác định `sumSkippingZeros(nums)` tính tổng tất cả các phần tử ngoại trừ các số 0 chính xác. Sử dụng tiếp tục.

Đang tải trình chỉnh sửa…
Hiển thị gợi ý

Nếu n === 0, tiếp tục; nếu không thì tích lũy.

Giải pháp khả dụng sau 3 lần thử