Controlli Condizionali: if-else
- #java
- #programmazione
- #controllicondizionali
- #if
In questa lezione
1. Descrizione
L’istruzione if-else permette di controllare il flusso di esecuzione di un programma.
Il codice contenuto nel blocco if viene eseguito solo se la condizione è vera (true).
- Se la
condizioneè vera → viene eseguito il bloccoif - Se la
condizioneè falsa → viene eseguito il bloccoelse(se presente)
In Java una condizione deve restituire obbligatoriamente un valore booleano (true oppure false).
![]()
2. Sintassi
Sintassi base dell’istruzione if:
if (condizione) {
// istruzioni eseguite se la condizione è vera
}
L’if statement valuta la condizione dentro alle parentesi ( ).
- Se la
condizionerisultatrue, il codice dentro al corpo dell’ifviene eseguito. - Se la
condizionerisultafalse, il codice dentro al corpo dell’ifviene evitato.
Nota
Il codice tra { } prende il nome di corpo dell’istruzione if
3. Funzionamento
3.1 If semplice
L’istruzione if permette di verificare determinate condizioni ed ha la seguente sintassi:
//...
if (condizione) {
//....
}
//...
In questo caso se l’espressione risulta vera, fa eseguire l’istruzione immediatamente successiva, altrimenti (se la condizione è falsa) si salta l’istruzione (o il blocco di istruzioni) e si procede nell’esecuzione delle istruzioni successive.
3.2 If - Else
Permette di scegliere tra due alternative.
if (condizione) {
// caso vero
} else {
// caso falso
}
3.3 If - Else If - Else
Permette di controllare più condizioni.
if (condizione1) {
// codice
}
else if (condizione2) {
// codice
} else {
// caso finale
}
Così si può comandare il flusso del programma decidendo di eseguire una parte di codice oppure no (nel caso del solo if), di fare una scelta tra due parti di codice (nel caso if - else) o di fare una scelta tra più parti di codice (nel caso if - else if - else).
4. In sintesi
- Utilizzare l’
ifistruzione per specificare un blocco di codice da eseguire se una condizione ètrue. - Utilizzare l’
elseistruzione per specificare un blocco di codice da eseguire se la condizione èfalse. - Utilizzare l’
else ifistruzione per specificare una nuova condizione se la prima condizione èfalse.
4.1 Esempio
if (risultato_esame >= 18){
printf ("Complimenti hai superato l'esame");
}
else if (risultato_esame >= 15) {
printf ("Devi sostenere l'orale per questo esame");
}
else {
printf ("Non hai superato l'esame");
}
5. Quiz a risposta multipla
Mettiti alla prova
0/5 risposte
In Java, che tipo deve restituire la condizione di un if?
Quando viene eseguito il blocco else?
Quale sintassi è corretta in Java?
A cosa serve else if?
Quanti else può avere un if?
6. Esercizi
6.1 Esercizio
realizzare un programma che chiede all’utente 3 valori (valore1, valore2, valore3), in base ai quali il programma restituisce in output i 3 valori dal maggiore al minore.
Esempio Output: inserisci 3 numeri: 4 3 5 numero3 >= numero1 >= numero2
💡 Mostra soluzione
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int numero1, numero2, numero3;
System.out.println("Inserisci 3 numeri:");
numero1 = input.nextInt();
numero2 = input.nextInt();
numero3 = input.nextInt();
if (numero1 >= numero2 && numero1 >= numero3) {
if (numero2 >= numero3)
System.out.println("numero1 >= numero2 >= numero3");
else
System.out.println("numero1 >= numero3 >= numero2");
}
else if (numero2 >= numero1 && numero2 >= numero3) {
if (numero1 >= numero3)
System.out.println("numero2 >= numero1 >= numero3");
else
System.out.println("numero2 >= numero3 >= numero1");
}
else {
if (numero2 >= numero1)
System.out.println("numero3 >= numero2 >= numero1");
else
System.out.println("numero3 >= numero1 >= numero2");
}
input.close();
}
}6.2 Esercizio
realizzare un programma che chiede all’utente 2 valori, in base ai quali il programma dice qual è il maggiore, oppure uguali nel caso.
Esempio Output: inserisci primo valore: 7 inserisci secondo valore: 3 il numero maggiore e’: 7
💡 Mostra soluzione
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
int x, y;
System.out.print("Inserisci primo valore: ");
x = input.nextInt();
System.out.print("Inserisci secondo valore: ");
y = input.nextInt();
if(x > y){
System.out.println("Il numero maggiore e': " + x);
}
else if(x < y){
System.out.println("Il numero maggiore e': " + y);
}
else{
System.out.println("I numeri sono uguali");
}
input.close();
}
}6.3 Esercizio
realizzare un programma che chiede all’utente 1 valore, se il valore è:
→ il voto è estremamente insufficiente
→ il voto è insufficiente
→ il voto è sufficiente
→ il voto è buono
→ il voto è ottimo
→ il voto è eccellente
→ il voto non è valido
Esempio Output: inserisci valore: 7 il voto e’ buono
💡 Mostra soluzione
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
double val;
System.out.print("Inserisci valore: ");
val = input.nextDouble();
if(val > 1 && val < 5){
System.out.println("il voto e' estremamente insufficiente");
}
else if(val >= 5 && val < 6){
System.out.println("il voto e' insufficiente");
}
else if(val >= 6 && val < 7){
System.out.println("il voto e' sufficiente");
}
else if(val >= 7 && val < 8){
System.out.println("il voto e' buono");
}
else if(val >= 8 && val < 9){
System.out.println("il voto e' ottimo");
}
else if(val >= 9 && val <= 10){
System.out.println("il voto e' eccellente");
}
else if(val < 0 || val > 10){
System.out.println("il voto non e' valido");
}
input.close();
}
}