Visualizzazione dei risultati da 1 a 10 su 14

Discussione: ....un ciclo strano...

Visualizzazione discussione

  1. #10
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,326
    Aggiungo ancora una cosa, per far capire che le label possono tranquillamente essere evitate se non si necessita di avere "migliori performances" in ambiente critico.


    codice:
    miaLabel:
    while( condizione ) {
       while( altra_condizione ) {
          if (condizione3 ) break miaLabel;
          ...
       }
    }

    C'è un ciclo while. All'interno del ciclo while, c'è un secondo ciclo while. Se dentro al while più interno viene verificata una determinata condizione (condizione3) allora viene terminato il ciclo while più esterno (ed, ovviamente, anche il relativo ciclo interno).
    Questo codice può essere riscritto, in modo più chiaro e lineare, in questo modo:


    codice:
    boolean flag = true;
    while(flag && condizione) {
       while(flag && altra_condizione) {
          if (condizione3) {
             flag = false;
          } else {
             ...
          }
       }
    }

    E' meno performante, poichè il break fa terminare immediatamente e forzatamente tutto, mentre in questo modo, verrebbe prima ri-analizzata la condizione del while interno (che terminerebbe), quindi ri-analizzata la condizione del while esterno (che terminerebbe). Però il secondo blocco di codice permette di seguire più facilmente il flusso logico del codice (l'esempio è troppo banale per rendersene conto, ma se il corpo dei due while fosse più complesso, le cose cambierebbero).
    Si dovrebbe sempre preferire un codice "facile e manutenibile", laddove le performances non giochino un ruolo altamente essenziale. Come ogni cosa, non c'è solo il lato buono o il lato cattivo: sono le cattive abitudini (e l'abuso), in genere, a creare codice di dubbia qualità.


    Ciao.
    Ultima modifica di LeleFT; 24-07-2014 a 13:04
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.