Home Testo Corso Swift Introduzione a if … else

Introduzione a if … else

833
0
Operazioni-Logiche-if...else

Nelle lezioni precedenti abbiamo visto alcune delle forme basi per la conservazione delle informazioni tramite l’utilizzo di variabili, array e dizionari.

Ora iniziamo a vedere  come gestire queste informazioni utilizzando forme di controllo e cicli. In questa prima lezione vediamo come confrontare uno o più elementi e a secondo del risultato compiere determinate operazioni.

If … else

Letteralmente significa se … altrimenti.

Tutti i giorni nella vita pratica utilizziamo questa forma di condizionalità, ogni cosa che facciamo è scaturita da una valutazione di una condizione, per esempio se oggi non piove vado al parco altrimenti vado al cinema, se questa sera non sono stanco esco altrimenti vado a dormire ecc ecc.

Questa cosa vale anche nella programmazione infatti come accennato nelle lezioni precedenti o come tu avrai notato nell’utilizzo delle applicazioni, ti vengo notificate delle informazioni diverse in base alle scelte che fai, ti sei scordato di inserire il nome, la tua email non è valida, compila tutti i campi richiesti ecc ecc.

Tutto questo viene gestito utilizzando sistemi di controllo come if … else.

Per scrivere una condizione dobbiamo utilizzare questa sintassi:

if condizione {
cose da eseguire
}

else{
cose da eseguire
}

Possiamo dire vedendo la sintassi appena descrita che: condizione è il quesito che ci stiamo ponendo se esso risulta vero viene eseguito il codice presente tra le prime parenti graffe se negativo viene eseguito il codice presente nelle seconde parentesi graffe dopo else.

// Esempi

// controllo tra 2 variabili numeriche
var a = 5
var b = 3

if a > b{
print("la variabile a è maggiore di b")
}

else{
print("La variabile a è minore di b")
}

// Oppure stiamo facendo un controllo sulle vite di un gioco
// e vogliamo controllare se l'utente ha ancora vite per continuare
// se per esempio la var vite contiene il conteggio delle vite rimanenti
// potremmo comunicare all'utente il risultato di questo controllo e
// farlo proseguire se positivo(true) o fermarlo se negativo(false)
var vite = 5

if vite > 0 {
    
    vite -= 1 // tolgo una vita alla variabile vite
    print ("Puoi continuare, hai ancora \(vite) vite" )
    
}
else {
    print ("Non hai più vite per continuare")
    
}

Operatori di Comparazione

Gli operatori offrono lo strumento per confrontare due o più variabili/costanti

== Uguale a : a == b
!= non uguale a: a != b
Maggiore di: a > b
Minore di: a < b
>= Maggiore o Uguale di: a >= b
<= Minore o Uguale di a <= b

Ricorda che ogni operazione restituisce un Bool che può essere true se l’operazione di confronto è verificata o false se non è verificata. Che viene confrontato l’elemento di sinistra con quello di destra. Che = è diverso da ==, il primo è di assegnazione il secondo di confronto.

Operatori Logici

! : il simbolo ! o Not inverte una condizione Booleana, se è true la considera false e viceversa. Va inserito come prefisso di una variabile, costante o operazione di confronto.

&& : Il simbolo && (And) permette di concatenare più istruzioni di verifica le quali devono essere entrambe e contemporaneamente TRUE.

|| : || o Or permette di concatenare più istruzioni di verifica. L’intera condizione è TRUE se almeno una delle istruzioni di controllo è TRUE.

If a cascata o concatenati

A volte per necessità abbiamo bisogno di effettuare più controlli, in questo caso possiamo effettuare un if all’interno di un altro if.

Questo sistema di chiama concatenazione o a cascata e tecnicamente non ha limiti.

Per esempio, voglio controllare se una variabile contiene un numero uguale a un altra variabile, se non sono uguali voglio sapere quale dei due ha il valore più grande quindi potrei fare un controllo a cascata inserendo la parola if dopo else.

var a = 5
var b = 7

if (a == b) {
    print("a e b sono uguali")
} 

else if (a > b) {
    print("a è maggiore di b")
} 

else {
    print("a è minore di b")
}

In pratica sto dicenda controlla se “a” è uguale a “b” se si stampa sono uguali, se invece non sono uguali controlla se “a” è maggiore di “b” se si stampa “a” maggiore di “b” altrimenti stampa “b” è maggiore di “a“.

Con questo ultimo argomento abbiamo finito anche questa lezione sull’utilizzo del sistema di controllo if … else.

Questo controllo come altri che vedremo nelle prossime lezioni servono per eliminare gli errori logici che un compilatore non potrà mai segnalare e serviranno ad impedire che il tuo programma o applicazione vada in crash.

Se per esempio in un programma che gestisce i depositi e prelievi, tutto può funzionare correttamente ma se non controlli il suo saldo prima che una persona faccia un prelievo  si potrà verificare un errore logico in quanto la persona potrà prelevare anche se il suo conto è a 0.

Il programma funzionerà ugualmente perchè non riscontra errori di sintassi ma ovviamente è presente un errore logico di programmazione che il compilatore non può segnalare.

Scusa se insisto su questo punto ma per esperienza posso dirti che il 90% dei problemi che riscontro quando programmo e che mi hanno fatto passare brutte nottate sono stati per errori logici o controlli non eseguiti in modo corretto.

Se sei qui è perché stai imparando le basi della programmazione Swift quindi è giusto sin da subito capire questo punto molto importante che ti farà risparmiare tempo e arrabbiature.

E’ buona norma chiedersi prima di scrivere qualunque codice, perché scrivo questo codice?, quali sono i possibili errori?, come posso evitarli?, i controlli fanno quello dovrebbero fare?.

Sembra banale ma non è così! Ok basta altrimenti mi ci mandi 🙂

Per qualunque dubbio o domanda scrivi un commento in questa lezione.