[Roma.pm] una facile
Aldo Calpini
dada at perl.it
Thu Apr 23 09:44:49 PDT 2009
kanak at perl.it wrote:
> me lo puoi snodare due secondi plis, pare interessante ma per me e'
> arrabo.
>
> vuoi forse dire che nella parentesi del "for" posso mettere gruppi di
> comandi invece che liste?
ni.
for ha sostanzialmente due sintassi, quella semplice:
for my $iteratore (@lista) { ... }
e quella bizantina (presa para para dal linguaggio C):
for(inizializzazione; controllo; incremento) { ... }
inizializzazione, controllo e incremento possono essere effettivamente
gruppi di comandi. il primo viene eseguito solo a inizio ciclo. il
secondo viene eseguito ad ogni iterazione e, se ritorna un valore falso,
determina la fine del ciclo. il terzo viene eseguito ad ogni
iterazione punto e basta.
in sostanza, il ciclo for in questo modo e' equivalente a:
inizializzazione;
while(controllo) {
...
incremento;
}
sembra complicato, ma lo e' :-)
la forma piu' consueta per inizializzazione, controllo e incremento e':
for(my $i = 0; $i < 10; $i++) { ... }
questo esegue il ciclo inizializzando $i a 0, controlla ogni volta che
sia minore di 10, e ad ogni ciclo aggiunge uno ad $i. risultato:
for my $i (0..9) { ... }
le tre parti possono effettivamente essere complicare a piacere, tipo:
for(my($i, $j) = (0, 0); rand() > 0.999; $i++, $j--) { ... }
questo fa un loop con due variabili, una crescente e una decrescente,
che termina quando esce un numero casuale maggiore di 0.999.
probabilmente molto di piu' di quanto avresti voluto sapere :-)
cheers,
Aldo
More information about the Roma
mailing list