Condizione nel ciclo for

di il
2 risposte

Condizione nel ciclo for

Sto svolgendo un esercizio e ho riscontrato una difficoltà nel capire la condizione del ciclo for del metodo isDisp(int inizio, int fine). Quando mi trovo una variabile booleana,come in questo caso, insieme ad un altra condizione da rispettare come funziona? Vuol dire che se per un determinato indice i si verifica la condizione if(...) e result = false il ciclo for si ferma?
public class CampoTennis{
             public final int APERTURA = 9;
             public final int CHIUSURA = 21;
             private Prenotazione[] prenotazioni;
/**Crea un oggetto della classe CampoTennis.*/
             public CampoTennis(){
                 prenotazioni = new Prenotazione[CHIUSURA-APERTURA];
              }
/**Metodi ausiliari.
Controlla se il campo è disponibile in un dato intervallo.@return True se è libero.*/

              private boolean isDisp(int inizio, int fine){
                      boolean result = true;
                      for(int i = inizio - APERTURA; (i < fine - APERTURA)&&(result); i++){
                                     if(prenotazioni[i] != null)
                                        result = false;
                      }
                      return result;
               }

2 Risposte

  • Re: Condizione nel ciclo for

    È equivalente a (se non consideri il return value)
    
    for(int i = inizio - APERTURA; i < fine - APERTURA; i++)
          if(prenotazioni[i] != null)
             break;
    
  • Re: Condizione nel ciclo for

    Questo è il costrutto for:
    
    for( inizializzazione ; espressione booleana ; espressione incremento ) corpo-istruzioni;
    
    il corpo-istruzioni viene eseguito fintanto che l'espressione booleana risulta vera. Quando risulta falsa, il ciclo si ferma.

    Questa è a tutti gli effetti un'espressione booleana:
    
    (i < fine - APERTURA)&&(result)
    
    Quand'è che risulta falsa questa espressione? Piuttosto semplice: quando uno dei due termini in AND risulta falso.

    Quindi, quando i sarà maggiore o uguale a [fine - APERTURA]
    oppure
    result è falso.
Devi accedere o registrarti per scrivere nel forum
2 risposte