| Autor | Zpráva | ||
|---|---|---|---|
| robbie Profil |
Ahoj, chápu to dobře, když u switch zapomenu break; tak to vypíše i chybné hlášky, break je tedy bezpodminečně nutný všude, krom konce kodu? ¨
Je blobost aby $cislo % 2 byl case 5 pravda? Chápu modulo dobře? Děkuji např: <?php
$cislo = 6;
$modulo = $cislo % 2;
switch ($modulo) {
case 1 : echo "Číslo je dělitelné 3<br>";
case 3 : // Číslo je dělitelné 2;break;
case 0 : echo "Číslo je dělitelné 4<br>";
echo "Číslo je dělitelné 2<br>";
// zde skončí case 0 a case 2
case 5 : echo "Číslo je dělitelné nevim čim<br>";
}
?> |
||
| RastyAmateur Profil |
#2 · Zasláno: 12. 2. 2019, 12:25:04
robbie:
Když vynecháš break, vykoná se obsah i dalších case bez ohledu na pravdivost výroku
|
||
| TomášK. Profil * |
#3 · Zasláno: 12. 2. 2019, 17:22:10
Výsledek
$cislo % 2 je 0 nebo 1 (možná i -1 pro záporná čísla, tuším, že se to mezi jazyky lišilo), zápis se čte jako "$cislo modulo dva", výsledek je zbytek čísla po dělení 2. Pokud je výsledek 0, znamená to, že číslo je dělitelné 2.
|
||
| Keeehi Profil |
#4 · Zasláno: 12. 2. 2019, 19:29:10
robbie:
„Ahoj, chápu to dobře, když u switch zapomenu break; tak to vypíše i chybné hlášky“ Celkem ano. Když se vykonávání nijak nepřeruší, PHP opravdu přejde k vykonávání dalšího case bloku aniž by ověřovalo znovu tu "podmínku". „break je tedy bezpodminečně nutný všude, krom konce kodu?“ Ne tak úplně. Jde o to přerušit vykonávání toho kódu. Což se často u switche dělá právě pomocí break ale není to jediná možnost. V některých případech se může hodit return, jindy vyhození výjimky, exit, die. |
||
|
Časová prodleva: 7 let
|
|||
0