Uboreshaji wa Mizunguko Isiyo ya Lazima katika PHP
Katika mfumo ufuatao, programu fulani anakuangalia
kama nambari 3 iko kwenye safu:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$exists = false;
foreach ($arr as $elem) {
if ($elem == 3) {
$exists = true;
}
}
var_dump($exists);
?>
Kuna nini kibaya na ufumbuzi wake? Kwa muonekano hakuna
shughuli zisizo za lazima kwenye kitanzi. Tatizo,
hata hivyo, ni kwamba baada ya kubainisha kuwa
nambari 3 iko kwenye safu - kitanzi
bado kinaendelea kuzunguka hadi mwisho wa safu.
Jambo lisilo na maana zaidi litakapo kuwa, ikiwa nambari 3
itapatikana mahali popote mwanzoni mwa safu, na safu yenyewe
itakuwa na urefu, tuseme, wa vipengele 1000.
Itazalisha mizunguko elfu isiyo na manufaa!
Haifai bora.
Wacha tuiboreshe msimbo, tukikomesha kitanzi kwa wakati unaofaa:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$exists = false;
foreach ($arr as $elem) {
if ($elem == 3) {
$exists = true;
break;
}
}
var_dump($exists);
?>
Msimbo ufuatao unahesabu, ni vipengele vingapi
vya safu vinahitaji kuongezwa,
ili jumla izidi 10.
Tekeleza uboreshaji:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$sum = 0;
$i = 1;
foreach ($arr as $elem) {
$sum += $elem;
if ($sum <= 10) {
$i++;
}
}
echo $i;
?>
Msimbo ufuatao unaonyesha nambari shufwa kutoka kwenye masafa uliyopewa. Tekeleza uboreshaji:
<?php
for ($i = 0; $i <= 100; $i++) {
if ($i % 2 === 0) {
echo $i;
}
}
?>
Msimbo ufuatao unaonyesha nambari
zinazogawanyika kwa wakati mmoja kwa 2
na kwa 3. Tekeleza uboreshaji:
<?php
for ($i = 0; $i <= 100; $i++) {
if ($i % 2 === 0 and $i % 3 === 0) {
echo $i;
}
}
?>