Selezione (=scelta) con “if-else” Sintassi: if (condizione) istruzione; else if (condizione){ blocco di istruzioni; } else { } if (condizione1) istruzione; else if (condizione2) else if (condizione1){ blocco di istruzioni; } else if (condizione2){ } else { } Utilizzo: usato per eseguire operazioni diverse a seconda del valore di una o più condizioni booleane.
Iterazione (= ripetizione) con Ciclo “for” Sintassi: for (assegnazione iniziale variabile; limite massimo; incremento) istruzione; for (assegnazione iniziale variabile; limite massimo; incremento){ blocco di istruzioni; } Utilizzo: usato per eseguire la stessa operazione un numero FINITO (e spesso già conosciuto) di volte. Quindi: identifichiamo il valore iniziale di una variabile e il suo valore finale che viene raggiunto tramite il suo incremento o decremento (a seconda dell’utilità)
Esempio 1 (incremento): public class ProvaFor1{ public static void main(String args[ ]) { for (int i=0; i<10; i++) { System.out.println(i); } // end for } // end main } // end class Esempio 2 (Cosa cambia?): public class ProvaFor2{ public static void main(String args[ ]) { for (int i=10; i>=0; i--) { System.out.println(i); } //end for } // end main } // end class
Esempio 3 (più var): public class ProvaFor3{ public static void main(String args[ ]) { for (int i=0, j=20; i<10; i++, j--) { System.out.println(“i: ”+ i + “, j: “ + j); } // end for } // end main } // end class Esempio 4 (Condizioni complesse, incrementi o decrementi con passo diverso) public class ProvaFor4{ public static void main(String args[ ]) { for (int i=0, j=20 ; i<10 || j>=22; i=i+2, j=j-3) { System.out.println(“i: ”+ i + “, j: “ + j); } // end for } // end main } // end class
Esempio 5 (Cicli for annidati) public class ProvaFor5{ public static void main(String args[ ]) { for (int i=0; i<10; i++) { for (int j=0; j<20; j++) { System.out.println(“i: ”+ i + “, j: “ + j); } // end for j } // end for i } // end main } // end class
Iterazione (= ripetizione) con Ciclo “while” Sintassi: while (condizione) istruzione; while (condizione){ blocco di istruzioni; } Utilizzo: usato per eseguire una istruzione (o un blocco di istruzioni) un numero FINITO di volte. La istruzione (o il blocco di istruzioni) vengono eseguite fin tanto che la condizione è vera. Il ciclo termina quando la condizione diventa falsa. Quindi: devo identificare la condizione che “regola” il ciclo e devo assicurarmi che prima o poi diventi falsa!
Esempio: public class SommaPrimiVenti { public static void main(String args[ ]) { int i = 1, sum=0; //imposta il primo valore della a variabile i // e la variabile in cui salvare la somma while (i<=20) { sum += i; /* per ora e’ preferibile usare l’istruzione sum=sum+i; */ i++; /* incrementa i in modo che prima o poi diventera’>=20 e la condizione diventera’ falsa causando la fine del ciclo. Per ora e’ preferibile usare l’istruzione i=i+1; */ System.out.println(i); } // end while System.out.println(“La somma dei primi 20 numeri e’ = ” + sum); } // end main } // end class Modificare la classe in modo che calcoli la somma dei primi “n” numeri (dove n è un valore intero passato in input dall’utente)
Iterazione (= ripetizione) con Ciclo “do .. while” Sintassi: do istruzione; while (condizione); do{ blocco di istruzioni; } while (condizione); Utilizzo: usato per eseguire una istruzione (o un blocco di istruzioni) SICURAMENTE 1 volta (!!!) e poi iterarle a fin tanto che la condizione è vera. Il ciclo termina quando la condizione diventa falsa. Quindi: devo identificare la condizione che “regola” il ciclo e devo assicurarmi che prima o poi diventi falsa!
import java.util.Scanner; Esempio: somma di numeri inseriti dall’utente fino a che non viene inserito 0 import java.util.Scanner; public class SommaNumeri{ public static void main(String args[ ]) { int i = 0, sum=0; //imposta il primo valore della a variabile i // e la variabile in cui salvare la somma Scanner lett= new Scanner(System.in); do { i = lett.nextInt(“Inserisci il numero da sommare (0 per terminare)”); if (i != 0){ sum = sum + i; } // end if System.out.println(i); } while (i != 0); System.out.println(“La somma dei numeri e’ = ” + sum); } // end main } // end class
Modificare la classe in modo che: conti (e stampi) il numero di elementi inseriti dall’utente e sommati, prima dello 0 che termina la somma; calcoli (e stampi) la somma dei numeri pari inseriti dall’utente prima dello 0 che termina la somma; calcoli (e stampi) la somma dei numeri dispari inseriti dall’utente prima dello 0 che termina la somma; calcoli (e stampi) la somma dei numeri pari e quella dei numeri dispari inseriti dall’utente prima dello 0 che termina la somma.