Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Programma C che non si chiude correttamente
Forum - C/C++ - Programma C che non si chiude correttamente - Pagina 2

Pagine: [ 1 2 3 4 ] Precedente | Prossimo
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1620
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 17:37
Domenica, 06/09/2015
L'uso di break; è MOLTO, MOLTO MALE! E porta a spaghetti code. Inoltre è BRUTTISSIMO da leggere! Evitate!

PM Quote
Avatar
AldoBaldo (Member)
Guru


Messaggi: 699
Iscritto: 08/01/2015

Segnala al moderatore
Postato alle 19:59
Domenica, 06/09/2015
Mah... secondo me dipende da dove e come lo usi. E' un po' la stessa storia del goto. Se hai delle piccole funzioni dove è immediatamente chiaro cosa fa il break non ci vedo niente di male, nell'usarlo. Certo è che invece se lo "immergi" in costrutti megalitici dove porta a perdere il senso del flusso hai ragione.


ATTENZIONE! Sono un hobbista e l'affidabilità delle mie conoscenze informatiche è molto limitata. Non prendere come esempio il codice che scrivo, perché non ho alcuna formazione accademica e rischieresti di apprendere pratiche controproducenti.
PM Quote
Avatar
marco (Member)
Newbie


Messaggi: 6
Iscritto: 19/02/2015

Segnala al moderatore
Postato alle 21:51
Domenica, 06/09/2015
Testo quotato

Postato originariamente da TheDarkJuster:

L'uso di break; è MOLTO, MOLTO MALE! E porta a spaghetti code. Inoltre è BRUTTISSIMO da leggere! Evitate!



'E porta a spaghetti code.'? Cosa dovrebbe significare?
Il break è necessario, e a volte nemmeno sufficiente, per uscire da cicli. Certo, quando si può è meglio mantenere il codice semplice, ma un break non ha mai fatto male a nessuno, non stai mica riempiendo il source di goto.
Non capisco nemmeno perché dovrebbe essere 'BRUTTISSIMO', ma dato che spari giudizi senza nemmeno giustificarli.

Chiedo scusa per l'OT.

PM Quote
Avatar
TheDarkJuster (Member)
Guru^2


Messaggi: 1620
Iscritto: 27/09/2013

Segnala al moderatore
Postato alle 21:58
Domenica, 06/09/2015
Puoi fare tutto senza usare break ed è già stato dimostrato. Il break è bruttissimo perché non sai perché sei uscito dal ciclo, potresti non avere nemmeno modo di scoprirlo.

PM Quote
Avatar
marco (Member)
Newbie


Messaggi: 6
Iscritto: 19/02/2015

Segnala al moderatore
Postato alle 22:03
Domenica, 06/09/2015
Testo quotato

Postato originariamente da TheDarkJuster:

Puoi fare tutto senza usare break ed è già stato dimostrato. Il break è bruttissimo perché non sai perché sei uscito dal ciclo, potresti non avere nemmeno modo di scoprirlo.  



Ora rido. Perché non puoi dire che il break è 'BRUTTISSIMO' quando per non usarlo dovresti riempire di flag, if e blocchi il codice. Quello sì che farebbe schifo.

PM Quote
Avatar
Roby94 (Member)
Guru


Messaggi: 1170
Iscritto: 28/12/2009

Segnala al moderatore
Postato alle 22:03
Domenica, 06/09/2015
è assolutamente sbagliato, break è un elemento estremamente comodo in un ciclo while, e non porta assolutamente ad un antipattern come lo spaghetti code. La giustificazione a questa affermazione è semplice, l'uso di break non permette "jump back" nella struttura del programma come invece permette il goto, ma semplicemente di uscire dal ultimo ciclo nello stack dei comandi. Quindi no, il break non è il male. Se non vuoi usarlo, non ci sono problemi, con dei semplici stratagemmi si può rimpiazzare con delle strutture di controllo, ma cosi facendo la complessità del programma può solo aumentare sia a livello di codice che di struttura per il calcolatore.

PM Quote
Avatar
ZioCrocifisso (Member)
Pro


Messaggi: 135
Iscritto: 06/03/2013

Segnala al moderatore
Postato alle 22:07
Domenica, 06/09/2015
Testo quotato

Postato originariamente da TheDarkJuster:

L'uso di break; è MOLTO, MOLTO MALE! E porta a spaghetti code. Inoltre è BRUTTISSIMO da leggere! Evitate!


Si chiama "spaghetti code" perché il codice si "ingarbuglia" come gli spaghetti, cosa che non succede col break, visto che si va sempre alla fine del blocco, e anche con più break avviene tutto in modo ordinato, senza salti in avanti e indietro. Al massimo può essere considerata spaghetti la combinazione di molti break e continue, ma anche in quel caso pur essendo i due statement dei jump, hanno un significato più astratto (uscire dal ciclo e continuare il ciclo) che non rende difficile capire il codice come i goto.

PM Quote
Avatar
ZioCrocifisso (Member)
Pro


Messaggi: 135
Iscritto: 06/03/2013

Segnala al moderatore
Postato alle 22:12
Domenica, 06/09/2015
Testo quotato

Puoi fare tutto senza usare break ed è già stato dimostrato.


Certo. Puoi fare tutto anche senza funzioni, oggetti, classi, macro, moduli, ecc.
Ma allora perché non facciamo e usiamo tutti un linguaggio che implementa le 3 sole strutture di controllo e nient'altro? (domanda retorica)

PM Quote
Pagine: [ 1 2 3 4 ] Precedente | Prossimo