Hướng dẫn dùng break] trong PHP

Bài trước chúng ta đã tìm hiểu vòng lặp cuối cùng đó là vòng lặp foreach trong php, vậy thì trong bài này chúng ta sẽ tìm hiểu một số câu lệnh dừng chương trình vòng lặp và lệnh nhảy tới một vị trí nào đó trong file PHP.

Hướng dẫn dùng break] trong PHP

Hướng dẫn dùng break] trong PHP

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Nội dung chúng ta gồm ó các phần như sau:

  • Câu lệnh Break
  • Câu lệnh Continue
  • Câu lệnh Goto
  • Câu lệnh Die & Exit

1. Câu lệnh break

Lệnh break thường được dùng để thoát khỏi vòng lặp cho dù vòng lặp vẫn chưa kết thúc.

Ví dụ:

Bài viết này được đăng tại [free tuts .net]

for ($i = 1; $i <= 100; $i++)
{
    echo $i . ' ';
    if ($i == 20)
    {
        break;
    }
}

Trong ví dụ này thì vòng lặp được lặp từ 1 cho tới 100, nhưng nó không chạy hết 100 lần bởi vì khi nó chạy tới lần thứ 20 (tức là biến $i = 20) thì câu lệnh kiểm tra if đúng nên lệnh break bên trong câu if được thực hiện và sẽ dừng vòng lặp.

Không chỉ ở vòng lặp for mà các vòng lặp như while và do while, vòng lặp foreach ta đều có thể dùng lệnh break để kết thúc.

2. Câu lệnh continue

Dịch ra tiếng anh cũng đủ hiểu phần nào câu lệnh này, lệnh continue sẽ bỏ qua những đoạn code bên dưới nó và nhảy qua vòng lặp kế tiếp (không thoát hẳn vòng lặp như lệnh break).

Ví dụ:

for ($i = 1; $i <= 10; $i++)
{
    if ($i == 5)
    {
        continue;
    }
    echo $i . ' ';
}

Bài này vòng lặp for lặp từ 1 tới 10 và in ra các số đó. nhưng lạ thay là kết quả thiếu mất số 5 tại vì khi $i = 5 (vòng lặp thứ 5) thì câu lệnh continue đã nhảy chương trình qua vòng lặp mới nên lệnh echo $i không thực hiện được.

Tương tự ta có thể sử dụng lệnh này cho tất cả các vòng lặp for, while, do while và foreach.

3. Câu lệnh goto

Lệnh goto dùng để nhảy đến một dòng code nào đó.

Ví dụ:

$a = 12;
$b = 13;
$c = $a + $b;
 
echo $a;
 
goto label_end;
 
echo $b;
 
label_end;

Trong ví dụ này nếu bình thường thì nó sẽ xuất ra màn hình cả $a và $b nhưng bài này nó chỉ xuất ra màn hình mỗi $a vì dòng goto label_end sẽ nhảy chương trình đến cái nhãn label_end nên dòng echo $b; không được thực hiện. label_end được gọi là nhãn (có thể đặt tên bất kỳ).

Người ta khuyên rằng không nên sử dụng lệnh goto bởi vì nó khó nhìn, lộn xộn khó bảo trì nâng cấp.

4. Lênh die và exit

Với 2 lệnh break và continue chỉ ảnh hương trong vòng lặp thì lệnh die và exit lại ảnh hưởng tới cả chương trình, nếu bạn dùng 2 lệnh này thì chương trình sẽ dừng ngay lập tức và những đoạn code bên dưới die và exit sẽ không được thực hiện.

Ví dụ:

echo '123';
 
die(); // hoặc exit();
echo '456';

Trong ví dụ này kết quả xuất ra màn hình là 123, vởi vì dòng code echo ’456′ không được thực hiện.

5. Lời kết

Thực tế thì ta hay sử dụng lệnh break, continue, die và exit thôi chứ lệnh goto rất ít khi dùng vì nó làm cho chương trình trở lên rối, khó nâng cấp và bảo trì. Bài tiếp theo ta sẽ tìm hiểu hàm trong php.

Hướng dẫn cách sử dụng câu lệnh break trong php.
Có phải bạn là dân lập trình, và hàng ngày vẫn đang phải quay cuồng trong một vòng xoay có tên là dead line ? Bạn này, đã đến lúc cần một cú break nho nhỏ để thoát khỏi vòng xoáy đó rồi đấy. Hãy cùng Kiyoshi tìm hiểu về Câu lệnh break trong php thông qua bài học này.

Chúng ta dùng câu lệnh break trong php để kết thúc một vòng lặp. Câu lệnh break có thể dùng để kết thúc vòng lặp được tạo ra với lệnh while cũng như với lệnh switch.
Cú pháp câu lệnh break trong php như sau:

Cú pháp

break;

Ví dụ

Chương trình tính tổng các số nhỏ hơn 100.

$count = 1;
$sum = 0;

while ($count <= 100){
$sum += $count;
$count += 1;
}

print 'sum = '.$sum;

Kết quả

sum = 5050

Ở ví dụ trên, đơn giản là chúng ta dùng lệnh while để tính tổng lần lượt các số nhỏ hơn 100, từ 1 đến 99. Bạn có tham khảo về câu lệnh while trong php ở bài giảng trước.

Tiếp theo, giả sử chúng ta muốn tỉnh tổng lần lượt các số nhỏ hơn 100 (từ 1 tới 99),nhưng sẽ dừng lại tại thời điểm tổng này vượt quá 1000 . Lần này, chúng ta sẽ thêm câu lệnh break để dừng vòng lặp while lại tại thời điểm tổng vượt quá 1000, bằng cách như sau :

$count = 1;
$sum = 0;

while ($count <= 100){
$sum += $count;

if ($sum > 1000){
print 'Tại lần tính = '.$count.'tổng đã quá 1000';
break;
}

$count += 1;
}


print 'sum = '.$sum;

Kết quả

Tại lần tính = 45tổng đã quá 1000sum = 1035

Bên trong lệnh while chúng ta chèn thêm lệnh if nhằm xét giá trị của tổng (biến $sum). Nếu tổng này lớn hơn 1000, lệnh break được thực hiện và vòng lặp bị dừng lại tại thời điểm này.

Giống như ví dụ trên, chúng ta có thể dùng câu lệnh break để dừng vòng lặp tại bất kỳ một thời điểm nào mà chúng ta muốn.

Chỉ định vị trí thoát của câu lệnh break trong vòng lặp kép

Khi dùng câu lệnh break trong một vòng lặp kép ( tiếng anh : nested loop), mặc định chương trình sẽ dừng lại và thoát khỏi vòng lặp trực tiếp chứa câu lệnh break đó.

$i = 1;

while ($i < 5){
$j = 1;
while ($j < 5){
if ($i * $j > 15){
break;
}

$j += 1;
}


$i += 1;
}
print 'i='.$i;

Kết quả

i=5

Vòng lặp kép ở ví dụ trên có hai lớp, là vòng lặp trong và vòng lặp ngoài, với vòng lặp trong chứa lệnh break. Khi chương trình chạy câu lệnh break, chương trình sẽ dừng vòng lặp trong, thoát ra và thực hiện các câu lệnh bên ngoài vòng lặp trong. Trong trường hợp này, tuy vòng lặp trong đã dừng lại, nhưng các câu lệnh tiếp theo ở vòng lặp bên ngoài sẽ vẫn tiếp tục được thực hiện.

Trong một vòng lặp kép có nhiều lớp , chúng ta có thể chỉ định vị trí muốn thoát câu lệnh break bằng cách chỉ định thêm số thứ tự của lớp muốn dừng sau câu lệnh break như sau:

break số thứ tự của lớp; 

Ví dụ, chúng ta viết lại ví dụ sau để dừng cả vòng lặp bên ngoài :

$i = 1;

while ($i < 5){
$j = 1;
while ($j < 5){
if ($i * $j > 15){
break 2;
}

$j += 1;
}

$i += 1;
}

print 'i='.$i;

Kết quả

i=4

Chúng ta có thể thấy rõ do vị trí break thay đổi đã dẫn tới kết quả chương trình thay đổi.
Do chúng ta chỉ định số thứ tự lớp (Lấy vòng lặp trong làm chuẩn là 1, thì vòng lặp ngoài có số thứ tự là 2 ), do đó khi câu lệnh break được thực hiện, chương trình sẽ dừng vòng lặp trong và quay về vị trí đầu của vòng lặp ngoài.
Sự khác biệt là chương trình sẽ dừng vòng lặp trong hay là cả vòng lặp ngoài.

Thực hành

Trăm hay không bằng tay quen, hãy cùng thực hành với ví dụ sau đây:


print 'Chương trình tỉnh tổng các số từ 1 đến 99 cho tới khi tổng lớn hơn 1000'."\n";

$count = 1;
$sum = 0;

while ($count <= 100){
$sum += $count;

if ($sum > 1000){
print 'Tại lần tính = '.$count.' tổng đã quá 1000'."\n";
break;
}

$count += 1;
}
print 'tổng ='.$sum;
?>

Tổng kết

Chúng ta dùng câu lệnh break trong php để kết thúc một vòng lặp. Trong một vòng lặp kép có nhiều lớp, chúng ta có thể quyết định số lớp muốn dừng lại bằng cách thêm số thứ tự của lớp đó vào câu lệnh break.

Viết bởi Kiyoshi. Đã đăng ký bản quyền tác giả tại <a title="Bạn được tự do chia sẻ bài viết nhưng phải để lại đường link bài viết từ laptrinhcanban.com. Bạn không được sử dụng tài liệu cho mục đích thương mại. Không được phép chỉnh sửa nội dung được phát hành trên website của chúng tôi" style="color:#fff;background-color:silver" rel="license noopener" target="_blank" href="https://creativecommons.org/licenses/by-nc-nd/4.0/">Creativecommons</a>&nbsp;và <a title="Bạn được tự do chia sẻ bài viết nhưng phải để lại đường link bài viết từ laptrinhcanban.com. Bạn không được sử dụng tài liệu cho mục đích thương mại. Không được phép chỉnh sửa nội dung được phát hành trên website của chúng tôi" style="color:#fff;background-color:silver" target="_blank" rel="noopener" href="https://www.dmca.com/Protection/Status.aspx?ID=1631afcd-7c4a-467d-8016-402c5073e5cd" class="dmca-badge">DMCA</a><script src="https://images.dmca.com/Badges/DMCABadgeHelper.min.js">

Bài viết liên quan

Hãy chia sẻ và cùng lan tỏa kiến thức lập trình Nhật Bản tại Việt Nam!

HOME>> >>