Corsi on-line
Chiudi
Newsletter:
  • Seguici su Facebook
  • Seguici su Twitter
  • Seguici su Google+
  • Seguici via RSS
  • Seguici col tuo Smartphone

I cicli

In Java esistono due tipi di cicli (operazioni ripetute più di una volta): il ciclo for e il ciclo while.

Il ciclo for

Il ciclo for viene utilizzato quando si vuole eseguire delle operazioni un numero determinato (già conosciuto) di volte. La sintassi del ciclo for è la seguente:

for (assegnazione variabile; limite massimo; incremento)
Quindi andiamo a determinare un valore iniziale della variabile nell'assegnazione, un valore massimo determinato spesso da una condizione e un incremento o decremento in base alle necessità.
class ProvaFor1 {
  public static void main(String args[]) {
    for (int i=0; i<10; i++) {
      System.out.println(i);
    }
  }
}
Come risultato avremo dieci righe composte da numeri da 0 a 9.

Nell'assegnazione variabile (primo parametro del ciclo for) dichiariamo come intero "i" e gli assegniamo il valore di 0. Il limite massimo è impostato a i<10 in maniera da eseguire la stessa operazione fintanto che "i" è minore di 10. Quando il valore di "i" (che è incrementato ad ogni passaggio con i++) raggiungerà 9 il ciclo si interromperà.

(L'articolo continua più sotto...)

Visualizziamo qualche altro esempio:

class ProvaFor2 {
  public static void main(String args[]) {
    for (int i=0, j=2; i<10; i++, j++) {
      System.out.println("i=" + i + " e j=" + j);
    }
  }
}
In questo caso utilizziamo due variabili locali ("i" e "j") che si autoincrementano ma hanno valori differenti: infatti il valore iniziale di "j" è impostato a 2, quindi incomincierà da 2 e terminerà a 11.

E' possibile anche inserire un for all'interno di un altro for attenendo così due for annidati. Un esempio è mostrato nel blocco di codice sottostante:

class ProvaFor2{
  public static void main(String args[]) {
    for (int i=1; i<11; i++) {
      for (int j=1; j<11; j++) {
        System.out.print(i*j + " ");
      }
    System.out.println();
    }
  }
}
Provate a compilare ed eseguire questo semplice programmino... esatto ciò che appare sullo schermo non è altro che la tavola pitagorica. Abbiamo cioè inserito un ciclo dentro un altro ciclo, e quindi per ogni numero "j" da 1 a 10 ne abbiamo moltiplicato per il numero "i" e restituito il risultato. Infine, quando termina il primo ciclo di "j" scriviamo un ritorno a capo e ricominciamo con il prossimo numero "i".

Il ciclo While

I cicli while sono differenti, non si usano le variabili con la formula dell'incremento, ma si eseguono cicli che terminano solo quando una condizione appare vera. Vediamo subito un piccolo esempio chiarificatore:

class ProvaWhile1 {
  public static void main(String args[]) {
    int i = 0;
    while (i<10) {
        System.out.println(i);
        ++i;
/*
i++ imposta prima il valore di i e poi lo incrementa
++i prima incrementa e poi imposta il valore
*/
    }
  }
}
Questo esempio stampa il valore di "i" fino a quando "i" non diventa 10, in questo caso abbiamo dovuto dichiarare e assegnare prima il valore di "i" e, dentro il blocco while, abbiamo incrementato il suo valore. Prima di eseguire le istruzioni contenute nel blocco il compilatore controlla che la condizione sia vera. E' tuttavia possibile anche eseguire almeno una volta le istruzioni dentro il blocco while utilizzando la sintasi con do (cd. ciclo do While):
class ProvaWhile2 {
  public static void main(String args[]) {
    int i = 0;
    do {
      System.out.println(i);
      ++i;
    }
    while (x<10);
  }
}

Corsi
Corso LinuxCorso Linux
Guida completa al sistema open-source. A partire da 39 €.
Corso PHPCorso PHP
Corso completo per la creazione di siti Web dinamici. A partire da 49 €.
Corso Ruby e Ruby On RailsCorso Ruby e Ruby On Rails
Creare software ed applicazioni Web con Ruby e ROR. A partire da 49 €.
Sommario
Annunci

Mr.Webmaster

Pubblicità
Chi Siamo
Contattaci
Collabora
Note Legali
© 2003 - 2012 Mr.Webmaster - Il portale dei Webmaster Italiani - Tutti i diritti riservati | Powered by IKIweb Internet Media S.r.l. - PIVA 02848390122