Operatori logici
Spesso ci imbattiamo a controllare due o tre condizioni, una dopo l'altra, oppure due condizioni diverse che eseguono lo stesso codice:
fun test1(x: Int) {
if (x >= 5) {
if (x <= 7) {
println("x è compreso tra 5 e 7")
}
}
}
fun test2(x: Int) {
if (x >= 7) {
println("x è maggiore di 7 o minore di 5")
}
if (x <= 5) {
println("x è maggiore di 7 o minore di 5")
}
}
Naturalmente si capisce che questo codice è brutto, gran parte dei linguaggi prevede un'alternativa per rendere più leggibile il codice: gli operatori && (and) e || (or):
fun test1(x: Int) {
if (x >= 5 && x <= 7) {
println("x è compreso tra 5 e 7")
}
}
fun test2(x: Int) {
if (x >= 7 || x <= 5) {
println("x è maggiore di 7 o minore di 5")
}
}
Inoltre c'è un terzo operatore:
fun test3(x: Int) {
if (x == 5) { }
else {
println("x è diverso da 5")
}
}
fun test3(x: Int) {
if (!(x == 5)) { println("x è diverso da 5") }
}
Il funzionamento in dettaglio dei tre operatori viene spiegato in questa tabella:
Operatore | Descrizione | ||
---|---|---|---|
&& | and: Il risultato è true se entrambi i valori booleani sono true. | ||
**_ | _** | or: Il risultato è true se almeno uno dei due valori booleani è true. | |
! | not: Viene posta di fronte all’espressione in questione e la nega: |
https://kotlinlang.org/docs/reference/
https://www.mattepuffo.com/blog/categoria/21-kotlin/0.html