Gli operatori logici in C++ consentono di concatenare tra di loro più espressioni logiche o anche di negare il risultato di un’espressione.
Ma vediamo in dettaglio quali sono gli operatori logici in C++:
! (not logico)
&& (and logico)
|| (or logico)
Esempi d’uso degli operatori logici in C++
Operatore not
Il connettivo not ( ! ), come abbiamo già detto, nega un’espressione.
Ad esempio l’espressione:
! a
restituisce vero se a è falsa e viceversa.
L’operatore ! è di tipo unario.
Operatore &&
L’operatore and ( && ) restituisce vero se e solo entrambe le operazioni logiche sono vere.
Ad esempio:
a == 5 && b == 7
Restituisce vero solo se a è uguale a 5 e b è uguale a 7, in tutti gli altri casi restituisce falso.
L’opertore && è un operatore binario.
Operatore ||
L’operatore or (||) restituisce vero se almeno una delle due espressioni è vera.
Ad esempio:
a == 5 || b == 7
E verà sia se le espressioni sono vere entrambe, sia se almeno una delle due è vera. Quindi è falsa solo se entrambe sono false.
L’opertore || è un operatore binario.
Ordine di priorità
L’ordine di priorità è il seguente: prima il not (!) poi l’and (&&) e infine l’or (||).
Quindi se vogliamo un ordine diverso occorre utilizzare le parentesi.
Ad esempio:
a == 5 || b == 7 && c == 6
Prima verranno valutate le operazioni logiche b == 7 e c == 6.
Invece, con le parentesi:
(a == 5 || b == 7) && c == 6
In questo caso verranno valutate prima le operazioni logiche a == 5 || b == 7.
Inoltre la valutazione delle espressioni và, come nel C, da sinistra verso destra.
Facciamo degli esempi sulla valutazione degli operatori logici in C++, per capire meglio il concetto.
Esempi
if (a > 10 || b != 9) ….
In questo caso l’espressione b diverso da 9 verrà valutata solo se l’espressione a>10 è falsa.
if (a > 10 && b != 9) ….
In questo caso l’espressione b diverso da 9 verrà valutata solo se l’espressione a>10 è vera.
Nella prossima lezione vedremo qualche esempio di utilizzo degli operatori logici in C++.
Alcuni link utili:
Indice argomenti linguaggio C++
1- Introduzione al linguaggio C++
3- Operatori di assegnazione in C++
Successione di Fibonacci in C++