Usare il "break" in un ciclo for

di il
6 risposte

Usare il "break" in un ciclo for

Salve a tutti, come dal titolo vorrei sapere se è "moralmente" corretto utilizzare il break in un ciclo for.
Sono al primo anno di Ingegneria Informatica e il mio prof ha espressamente detto che se in un compito di esame avesse visto utilizzare un break all'interno di un ciclo for, avrebbe bocciato l'alunno.
Ho notato che c'è una similitudine con il "goto", perchè anche questa funzione funziona , ma non è comunque utilizzata, poichè crea più "entrate" e più "uscite" all'interno di un sottoprogramma.
Ma il for non fa niente di simile.
Quindi, ritornando alla domanda, vorrei sapere se è possibile utlizzarlo.
Scusatemi, inoltre se ho sbagliato sezione in cui inserire il topic; dato che è di carattere generale e non relativo ad un solo linguaggio di programmazione, ho pensato che potesse andare bene.
Grazie

6 Risposte

  • Re: Usare il "break" in un ciclo for

    In realtà, non sono molti i linguaggi di programmazione che ammettono la break o equivalente.

    In ogni caso, la risposta in estrema sintesi è assolutamente affermativa: non solo è ampiamente lecito nella programmazione mainstream l'uso della break per uscire anticipatamente da un ciclo, ma il suo impiego è perfino ammesso in contesti critici di uso del linguaggio C, come quelli regolati dalla MISRA/C che fino dall'edizione 2004 ha iniziato a distinguere in modo netto l'uso della goto (deprecato) da quello della break (ammesso).

    Per una discussione un po' più completa sull'uso della goto e forme derivate, si veda anche questo.

    In generale, è comunque giusto scoraggiare didatticamente l'impiego di taluni statement, che richiedono maturità professionale e ampia esperienza con codice di elevato livello qualitativo del real world per poter essere utilizzati con cognizione di causa.
  • Re: Usare il "break" in un ciclo for

    Ciao buongiorno...diciamo che moralmente come dici tu e specialmente scolasticamente è deprecabile l'uso del break!!! Ci sono eccezioni che ho visto sopratutto in python piu per il while. Comunque anche io cerco di evitarne l'uso!!! Un saluto


    Inviato dal mio iPhone utilizzando Tapatalk
  • Re: Usare il "break" in un ciclo for

    Capisco.. quindi nel caso in cui avessi necessità di usare un break all'interno di un ciclo for, come potrei fare?
    Faccio un esempio:
    
    bool flag;
    int i=0;
    	for(int k=0;k<cont;k++)
    			{
    				if(nome==vettore[k])
    				{
    					flag= true;
                                            break;
    				}
    				 else flag=false;
    			}
             if(flag==false)
             {
                   i++;
             }
    
    Questa è un pezzo di codice (modificato in parte), che restituisce un valore true o false in base al risultato del confronto tra due stringhe.
    La variabile "vettore" è allocata dinamicamente.
    Come potrei ovviare al problema dell'uso del break in questo ciclo?
  • Re: Usare il "break" in un ciclo for

    for(int k=0;(k<cont)&&(!flag);k++)
  • Re: Usare il "break" in un ciclo for

    Ma in questo modo poi non diventerebbe un ciclo non determinato (quindi si andrebbe comunque a contraddire la definizione stessa del ciclo for), poichè non sappiamo quando la variabile flag diventa falsa?
  • Re: Usare il "break" in un ciclo for

    No, equivale ad un ciclo while. Lui non voleva il break.
Devi accedere o registrarti per scrivere nel forum
6 risposte