Menu
CoddyTech

Câu lệnh break

Thuộc phần Kiến thức cơ bản trong hành trình PHP của Coddy. Bài học 51 trên 71.

Đôi khi, bạn cần thoát khỏi vòng lặp sớm, trước khi vòng lặp kết thúc tự nhiên. Câu lệnh break giúp bạn làm điều đó. Câu lệnh này dừng vòng lặp ngay lập tức và tiếp tục chạy phần code phía sau.

Hãy tưởng tượng bạn đang tìm một giá trị cụ thể trong mảng (array). Khi tìm thấy giá trị đó, bạn không cần kiểm tra các phần tử còn lại. Dùng break giúp tránh các lần lặp không cần thiết.

<?php
$numbers = [3, 7, 2, 9, 5, 1];

foreach ($numbers as $num) {
    if ($num === 9) {
        echo "Found 9!\n";
        break;
    }
    echo "Checking $num\n";
}

echo "Search complete";
?>

Kết quả in ra:

Checking 3
Checking 7
Checking 2
Found 9!
Search complete

Lưu ý rằng 5 và 1 không bao giờ được kiểm tra. Khi vòng lặp gặp 9, break thoát hẳn khỏi vòng lặp và chương trình chuyển đến "Search complete".

Câu lệnh break hoạt động với mọi loại vòng lặp: for, while và foreach. Câu lệnh này đặc biệt hữu ích khi bạn tìm kiếm thứ gì đó hoặc khi một điều kiện nào đó yêu cầu vòng lặp dừng ngay lập tức.

challenge icon

Thử thách

Dễ

Đọc hai dòng đầu vào:

  1. Một danh sách số được phân tách bằng dấu phẩy (ví dụ: 4,8,15,16,23,42)
  2. Một số cần tìm

Dùng vòng lặp foreach để tìm số cần tìm trong mảng. Khi tìm thấy số đó, in ra Found [target] at index [index]! rồi dùng break để thoát vòng lặp ngay lập tức.

Nếu vòng lặp kết thúc mà không tìm thấy số cần tìm, hãy in ra [target] not found.

Gợi ý: Dùng cú pháp khóa-giá trị trong vòng lặp foreach để theo dõi chỉ số.

Ví dụ 1:

Nếu đầu vào là 10,25,30,45,50 và 30, đầu ra sẽ là:

Found 30 at index 2!

Ví dụ 2:

Nếu đầu vào là 5,10,15,20,25 và 20, đầu ra sẽ là:

Found 20 at index 3!

Ví dụ 3:

Nếu đầu vào là 1,2,3,4,5 và 99, đầu ra sẽ là:

99 not found

Tự làm thử

<?php
// Đọc đầu vào
$numbers = explode(',', trim(fgets(STDIN)));
$target = trim(fgets(STDIN));

// TODO: Viết code bên dưới
// Dùng vòng lặp (loop) foreach với cú pháp khóa và giá trị để tìm mục tiêu
// Khi tìm thấy, in ra "Found [target] at index [index]!" rồi dùng break
// Nếu không tìm thấy sau vòng lặp, in ra "[target] not found"

?>
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 cơ bản

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