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
robbie:
Když vynecháš break, vykoná se obsah i dalších case bez ohledu na pravdivost výroku
TomášK.
Profil *
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
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.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0