Controllo del flusso
Indice
Ogni linguaggio di programmazione necessita di strumenti per il controllo del flusso che consentano di realizzare un’evoluzione dello stato coerente con il verificarsi di determinate condizioni oppure l’esecuzione di determinate operazioni iterativamente, sfruttando le capacità di calcolo di un elaboratore. In questa lezione analizzerai le strutture di controllo condizionali, che ti permetteranno di far compiere delle azioni al programma nel caso si verifichino (o non si verifichino) determinate condizioni.
l'istruzione if
if ( $anni >= 18)
print "complimenti! Sei maggiorenne";
if
, da un’espressione contenuta fra parentesi tonde e da un’istruzione.
L’espressione contenuta fra parentesi tonde verrà valutata in senso booleano, quindi il suo risultato sarà considerato o vero o falso.
Nel primo caso (vero), verrà eseguita l'istruzione:
print "complimenti! Sei maggiorenne";
// altrimenti (falso), l'istruzione verrà saltata.
if (condizione) {
//porzione di codice da eseguire se la condizione è vera
}
if ($anni >= 18 ) {
print "complimenti! Sei maggiorenne";
}
eccone la sintassi:
if (condizione ) {
//codice da eseguire se la condizione è vera
} else {
//codice da eseguire se la condizione è falsa
}
Una potenza di controllo maggiore sulle istruzioni ci viene data dal costrutto if-elseif-else, che può essere ripetuto più volte all’interno del costrutto e la cui sintassi è:
if (condizione_a) {
//codice da eseguire se condizione_a è vera
}
elseif (condizione_b) {
//codice da eseguire se condizione_a è falsa e condizione_b è vera
}
elseif (condizione_c) {
//codice da eseguire se condizione_a è falsa, condizione_b è falsa e condizione_c è vera
}
else {
//codice da eseguire se tutte le precedenti condizioni sono false
}
la sua sintassi generica è:
switch (espressione) {
case "primo_valore":
// codice da eseguire se (espressione = = primo_valore)
break;
case "secondo_valore":
// codice da eseguire se (espressione = = secondo_valore)
break;
case "terzo_valore":
case "quarto_valore":
// codice da eseguire se (espressione = = terzo_valore) oppure se (espressione = = quarto_valore)
break;
default:
// codice da eseguire se tutte le altre condizioni non sono verificate
}
Capita spesso, infatti, di dover elaborare grosse quantità di dati e che si debba prevedere il trattamento di gruppi di essi per poi ripeterlo ciclicamente su tutti i dati presenti.
In PHP esistono numerosi costrutti che ci permettono di eseguire operazioni cicliche sul codice.
ciclo for
la sintassi è la seguente:
for (inizio_ciclo; condizione; azione) {
// codice da eseguire quando la condizione è vera
}
- “inizio_ciclo”, contenente di solito inizializzazione di oggetti;
- valutazione della “condizione”: se questa è vera si passa al punto 3, altrimenti viene saltato tutto il codice contenuto fra parentesi graffe e si esce dal ciclo;
- esecuzione di “azione”, contenente di solito un’operazione di incremento dell’oggetto inizializzato, e contemporaneamente esecuzione del codice racchiuso fra parentesi graffe.
Quindi il ciclo viene rieseguito partendo dalla valutazione della “condizione”.
Nel seguente codice è visualizzato un esempio pratico del ciclo “for” che genera come output la tabellina del 9 in questa forma:
<!DOCTYPE html>
<html lang="it">
<head>
<title>Ciclo for in PHP<title>
<meta charset="utf-8">
</head>
<body>
<p>
<?php
for($a = 1; $a <= 10; $a++) {
$ris = 9 * $a;
print(" 9 * $a = $ris <br />");
}
?>
</p>
</body>
</html>
9 * 2 = 18
9 * 3 = 27
9 * 4 = 36
9 * 5 = 45
9 * 6 = 54
9 * 7 = 63
9 * 8 = 72
9 * 9 = 81
9 *10 = 90
La sintassi generica è la seguente:
while (condizione) {
// codice da eseguire per ogni ciclo
// eventuale codice di modifica della condizione
}
All’interno del ciclo dovrà esistere una qualche istruzione in grado di modificare il valore della condizione, altrimenti potrebbe crearsi una iterazione infinita.
Nel codice seguente si può notare come il precedente script per realizzare l’output della tabellina del 9 viene implementato mediante l’uso del “while“.
<!DOCTYPE html>
<html lang="it">
<head>
<title>Ciclo while in PHP<title>
<meta charset="utf-8">
</head>
<body>
<p>
<?php
$a = 1;
while ($a <= 10) {
$ris = 9 * $a;
print(" 9 * $a = $ris <br />");
$a++;
}
?>
</p>
</body>
</html>
Il costrutto “do-while“, invece, ci permette di eseguire il codice racchiuso fra parentesi graffe almeno una volta prima che si esca dal ciclo.
Questa è la sua sintassi generica:
do {
// codice da eseguire per ogni ciclo
} while (condizione);
<!DOCTYPE html>
<html lang="it">
<head>
<title>Ciclo do-while in PHP<title>
<meta charset="utf-8">
</head>
<body>
<p>
<?php
$a = 10;
do {
print($a++ . "<br />");
} while ($a < 10)
?>
</p>
</body>
</html>
la cui sintassi generica è:
foreach ($array as $chiave => $valore) {
// codice da eseguire per ogni elemento dell'array
}
Nel caso ci interessi solo il valore e non la chiave possiamo utilizzare il costrutto in questa forma:
foreach ($array as $valore) {
// codice da eseguire per ogni elemento dell'array
}
Ancora nessun commento