[gl-como] Tecniche di programmazione: break e continue

Matteo Cavalleri theos@bp.lnf.it
Mer 2 Mar 2005 10:49:24 CET


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Ok, arrivo tardi ma vi dico che, IMHO:

1) le break sono importanti, e a volte indispensabili (vedi l'uso
dello switch)
2) condizioni come quelle che mostra monto sono ovviamente scrivibili
senza break, mettendo <condizione>  al'interno del test del while, c'è
solo da vedere se il while lo vogliamo all'inizio o alla fine
3) esistono casi in cui il break è necessario (a parte le switch? ;-p )
Se i test da effettuare sono sono parecchi, e magari condizionati da
alcune priorità, non ci si può riportare nella condizione espressa sotto,
ed il break diventa addirittura in modo *elegante* per fare della
programmazione strutturata.
4) certo è che la programmazione strutturata ce la devi avere in testa
prima di scrivere:
per es: non mi piacciono - potendo - le break nei cicli indicizzati
(es. for..)
5) i sorgenti del kernel di linux sono zeppi di break. certo, la
maggior parte dei casi sono negli switch, ma trovate anche break dento
i for come nel caso 4)
per la funzione virgefb_compute_clock di virgefb.c (kernel 2.6.10...)
Eppure, guardate il sorgente, non mi sembra affatto giusto disdegnare
un pezzo di codice siffatto...





Pietro "m0nt0" Montorfano wrote:

| Beh, mi sono perso qualcosa :D A mio parere i break e simili sono
| da usare con moooooltissima parsimonia e solo nelle exception, non
| in programmazione semplice. Quello che dico io è che se c'è una
| condizione per uscire dal ciclo perchè non la sfruttiamo? Se
| scritta bene e/o commentata diventa leggibile, non ho mai
| incontrato problemi che richiedessero l'uso del break, a parte
| programmare un server che resti in ascolto. Il mio prof di info 1
| in uni spingeva per programmare cagate tipo
|
| while (1){ if(condizione){ break; } }
|
| Questa è obiettivamente una programmazione schifiosa, l'uso come
| quello del brisa mi pare già più appropriato anche se non mi piace
| l'uso di tali istruzioni. Poi penso che sia una cosa personale
| (Sempre se fatto nel modo corretto e non come nell'esempio sopra).
|
| Ciao!
|
| Pietro


-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.6 (GNU/Linux)
Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org

iD8DBQFCJYwjFjI78GNTqsYRAvONAJ9RsebZFUoc9TS6dFZfS6JSkLOF6gCfbspv
PD0Aq1YRaDlGnjJX2vHoo0A=
=ssDK
-----END PGP SIGNATURE-----

-------------- parte successiva --------------
Un allegato non testuale è stato rimosso....
Nome:        theos.vcf
Tipo:        text/x-vcard
Dimensione:  332 bytes
Descrizione: non disponibile
Url:         http://lists.linux.it/pipermail/gl-como/attachments/20050302/2f3720f7/theos.vcf


Maggiori informazioni sulla lista gl-como