Psylo
10-11-2006, 16:34
Ciao, sono alle prime armi col php e in generale con la programmazione.
sto studiando il ciclo do...while e in un esempio trovato e trascritto da un libro ho compilato il seguente listato che serve ad incolonnare i divisori di un dato numero passato via URL in una tabella di 5 colonne:
<html>
<head>
</head>
<body>
<?
$numero=$_GET['numero'];
$divisore=1;
$colonna=1;
echo "<table>";
while ($numero>=$divisore) {
if (!($numero%$divisore)) {
if ($colonna%5==1) print ("<tr>");
echo "<td>$divisore</td>";
$colonna=$colonna+1;
if ($colonna%5==1) print ("</tr>");
}
$divisore=$divisore+1;
}
if ($colonna%5!=1) print ("</tr>");
echo "</table>";
?>
</body>
</html>
ovviamente funziona bene e ho compreso come funziona tutto il listato tranne il significato delle righe che stampano i tag <tr> è </tr>.. qualcuno mi spiega in italiano cosa significano quei 2 IF ? secondo il mio cervello ormai in fumo :D se alla variabile $colonna assegnamo valore 1 (nella prima esecuzione del ciclo) il test dell'IF NON è ==1 (quindi:false) perchè il resto della divisione tra 1 e 5 non è 1! Perchè allora viene stampato il tag <tr>?? Evidentemente quell'espressione significa qualcos'altro...ma cosaaaa?? :muro:
Spero di essermi spiegato, so che la risposta è elementare per voi, ma dopo 2 ore di studio mi sfugge anche una cosa così elementare...
grazie a chi mi chiarirà la questione!
sto studiando il ciclo do...while e in un esempio trovato e trascritto da un libro ho compilato il seguente listato che serve ad incolonnare i divisori di un dato numero passato via URL in una tabella di 5 colonne:
<html>
<head>
</head>
<body>
<?
$numero=$_GET['numero'];
$divisore=1;
$colonna=1;
echo "<table>";
while ($numero>=$divisore) {
if (!($numero%$divisore)) {
if ($colonna%5==1) print ("<tr>");
echo "<td>$divisore</td>";
$colonna=$colonna+1;
if ($colonna%5==1) print ("</tr>");
}
$divisore=$divisore+1;
}
if ($colonna%5!=1) print ("</tr>");
echo "</table>";
?>
</body>
</html>
ovviamente funziona bene e ho compreso come funziona tutto il listato tranne il significato delle righe che stampano i tag <tr> è </tr>.. qualcuno mi spiega in italiano cosa significano quei 2 IF ? secondo il mio cervello ormai in fumo :D se alla variabile $colonna assegnamo valore 1 (nella prima esecuzione del ciclo) il test dell'IF NON è ==1 (quindi:false) perchè il resto della divisione tra 1 e 5 non è 1! Perchè allora viene stampato il tag <tr>?? Evidentemente quell'espressione significa qualcos'altro...ma cosaaaa?? :muro:
Spero di essermi spiegato, so che la risposta è elementare per voi, ma dopo 2 ore di studio mi sfugge anche una cosa così elementare...
grazie a chi mi chiarirà la questione!