Introduzione all'istruzione if

Ed eccoci arrivati a un punto fondamentale del corso. Fino ad ora ci siamo occupati solo ed esclusivamente di introdurre concetti che non ci permettevano di realizzare un programma vero e proprio. Questo perchè un qualsiasi programma importante, conterrà sicuramente delle istruzioni if e dei cicli che introdurremo nel capitolo successivo. Per introdurre cos'è un'istruzione if, prendiamo i seguenti esempi:

  • Dato un numero n, voglio che il sistema stampi a video se il numero è pari o dispari
  • Voglio controllare se un numero n è positivo


Questi esempi, seppur semplici sono perfetti per capire che l'istruzione if equivale esattamente a fare una domanda al computer, ovvero a chiederli se il numero è positivo, se è pari, dispari etc....

Sintassi di if[modifica | modifica wikitesto]

Riportiamo ora la sintassi base di un qualsiasi istruzione if:

if (condizione/domanda){
 ...
 blocco di istruzioni
 ...
}
else {
 ...
 blocco di istruzioni
 ...
}

Dove il primo blocco racchiuso da parentesi graffe viene eseguito qualora la condizione è vera, mentre il blocco else, viene eseguito quando la condizione posta è falsa.

Notate bene che in un qualsiasi istruzione if, può non venire eseguito nessun ramo, può essere eseguito il primo ramo (se la condizione è true) o può essere eseguito solo il secondo ramo (se la condizione è false), ma non possono mai essere eseguiti tutti i due rami! ovvero una condizione non può essere vera e falsa nello stesso momento.

ATTENZIONE: la condizione deve essere racchiusa dentro parentesi tonde e il valore che si ricava è un valore booleano ovvero vero e falso. prendiamo il seguente esempio per capire meglio:

if (n % 2 == 0)

Qui sto chiedendo al computer se effettivamente n è un numero pari, ovvero il resto della divisione (funzione mod) sia uguale a 0. il computer in base al valore n ci risponde con true o false (true se è pari, false se è dispari)

Sintassi if a sono un ramo[modifica | modifica wikitesto]

Nella programmazione ci può venir utile utilizzando l'istruzione if sono in questo modo

if (condizione/domanda){
 ...
 blocco di istruzioni
 ...
}

Non assolutamente un errore, e il significato di questo è: se la condizione è vera, allora esegui queste righe di codice, se false non fare nulla! Un esempio per capire è quello proposto al punto 2 sopra: eseguo delle righe di codice se un numero n è positivo. Quindi in questo caso non ho assolutamente bisogno di gestire il caso false (numero negativo).

Parentesi graffe[modifica | modifica wikitesto]

Abbiamo detto fino ad ora che ogni blocco di istruzioni (true e false) viene racchiuso dentro parentesi graffe, in generale e molto spesso, queste sono assolutamente obbligatorie, ma c'è un caso in cui le parentesi graffe si possono eliminare: Quando il blocco da eseguire ha una sola istruzione.

Prendiamo il seguente esempio

if (n % 2 == 0)
 System.out.println("E' un numero pari");
else
 System.out.println("E' un numero dispari");

In questo caso il codice è esatto ed eseguibile. Occhio però a usare questa regola con moderazione! se per caso modificassimo leggermente il codice:


if (n % 2 == 0)
 System.out.println("E' un numero pari");
 n = 0;
else
 System.out.println("E' un numero dispari");

Il nostro programma si presenterebbe come una fusione di errori gravissimi! Il programma non è sicuramente compilabile

Successivo