Sử dụng return trong vòng lặp trong PHP
Việc return nằm bên trong vòng lặp,
không phải lúc nào cũng là lỗi.
Trong ví dụ sau đây, một hàm được tạo để
xác định cần cộng bao nhiêu phần tử đầu tiên của mảng
để tổng trở nên lớn hơn hoặc
bằng 10:
<?php
function func($arr) {
$length = count($arr);
$sum = 0;
for ($i = 0; $i < $length; $i++) {
$sum += $arr[$i];
// Nếu tổng lớn hơn hoặc bằng 10:
if ($sum >= 10) {
return $i + 1; // thoát khỏi vòng lặp và hàm
}
}
}
$res = func([1, 2, 3, 4, 5]);
echo $res;
?>
Còn trong ví dụ sau đây, một hàm được tạo để
tính toán, cần cộng bao nhiêu số nguyên, bắt đầu từ
1, để kết quả
lớn hơn 100:
<?php
function func() {
$sum = 0;
$i = 1;
while (true) { // vòng lặp vô hạn
$sum += $i;
if ($sum >= 100) {
return $i; // vòng lặp tiếp tục cho đến khi thoát ra đây
}
$i++;
}
}
echo func();
?>
Hãy viết một hàm, tham số của nó sẽ
nhận một số và chia nó cho 2
nhiều lần, cho đến khi kết quả trở nên nhỏ hơn
10. Hãy để hàm trả về số lượng
vòng lặp, cần thiết để đạt được
kết quả.