do-while: Skillnad mellan sidversioner
Admin (diskussion | bidrag) (Skapade sidan med '== do-while-slingor == (PHP 4, PHP 5, PHP 7, PHP 8) `do-while`-slingor är mycket lika `while`-slingor, med skillnaden att sanningsuttrycket kontrolleras vid slutet av varje iteration istället för i början. Den huvudsakliga skillnaden från vanliga `while`-slingor är att den första iterationen av en `do-while`-slinga garanterat körs (sanningsuttrycket kontrolleras endast vid slutet av iterationen), medan den kanske inte nödvändigtvis körs med en vanlig `while`-...') |
(Ingen skillnad)
|
Nuvarande version från 18 augusti 2024 kl. 07.05
do-while-slingor
(PHP 4, PHP 5, PHP 7, PHP 8)
`do-while`-slingor är mycket lika `while`-slingor, med skillnaden att sanningsuttrycket kontrolleras vid slutet av varje iteration istället för i början. Den huvudsakliga skillnaden från vanliga `while`-slingor är att den första iterationen av en `do-while`-slinga garanterat körs (sanningsuttrycket kontrolleras endast vid slutet av iterationen), medan den kanske inte nödvändigtvis körs med en vanlig `while`-slinga (sanningsuttrycket kontrolleras i början av varje iteration, och om det utvärderas till falskt direkt från början, skulle slingans exekvering sluta omedelbart).
Det finns bara en syntax för `do-while`-slingor:
<?php
$i = 0;
do {
echo $i;
} while ($i > 0);
?>
Ovanstående slinga skulle köras en gång exakt, eftersom efter den första iterationen, när sanningsuttrycket kontrolleras, utvärderas det till falskt ($i är inte större än 0) och slingans exekvering avslutas.
Avancerade C-användare kan vara bekanta med en annan användning av `do-while`-slingan, för att tillåta avbrytning av exekvering mitt i kodblock, genom att inkapsla dem med `do-while (0)`, och använda `break`-uttalandet. Följande kodfragment demonstrerar detta:
<?php
do {
if ($i < 5) {
echo "i är inte tillräckligt stor";
break;
}
$i *= $factor;
if ($i < $minimum_limit) {
break;
}
echo "i är ok";
/* process i */
} while (0);
?>
Sidslut
Orginalhemsidan på Engelska :
PHP
Språkreferens
Språkreferens#Kontrollstrukturer