Operatori Logici in C: AND, OR e NOT

2019-12-20

Scopriamo come raggruppare più condizioni tra loro per mantenere il codice pulito e leggibile.

Programma pari o dispari

Riprendiamo il programma del pari e dispari fatto in precedenza:

#include <stdio.h>

int main(){
    int numero = 20;

    // verifico se il numero è pari
    if( numero % 2 == 0 ){
        printf("Numero Pari");
    }
    else{
        printf("Numero Dispari");
    }

    return 0;
}

Immaginiamo adesso di dover stampare Numero Pari solo se maggiore di 0.

#include <stdio.h>

int main(){
    int numero = 20;

    // verifico se il numero è pari
    if( numero % 2 == 0 ){
        if( numero > 0 ) {
        printf("Numero Pari");
        }
    }
    else{
        printf("Numero Dispari");
    }

    return 0;
}

numero % 2 == 0 e numero > 0 possono anche essere raggruppate in una sola condizione:

#include <stdio.h>

int main(){
    int numero = 20;

    // verifico se il numero è pari
    if( numero % 2 == 0 && numero > 0 ){
        printf("Numero Pari");
    }
    else{
        printf("Numero Dispari");
    }

    return 0;
}

Operatori logici

Per unire due condizioni tra loro è necessario utilizzare gli operatori logici AND e OR. Essi ci permettono di creare diverse situazioni complesse:

  • AND (&&) esegue il codice se entrambe le condizioni sono vere
  • OR (||) esegue il codice se almeno una condizione è vera
  • NOT (!) esegue il codice se una condizione è falsa
rappresentazione operatori logici and, or e not

Uniamo a queste rappresentazioni una tabella di verità per ogni operatore per capire meglio il loro funzionamento

tabella di verità operatori logici and, or e not

Vediamo ora degli esempi di codice:

//SE IL NUMERO n E' COMPRESO TRA 0 e 10
if( n >= 0 && n <= 10){

}

//SE IL NUMERO n E' MINORE DI 20 O MAGGIORE DI 100
if(n < 20 || n > 100){

}

//SE IL NUMERO n NON E' PARI

if( n % 2 != 0 ){

}

Ecco come creare delle istruzioni complesse e ridurre le righe di codice.