05 Condizioni e Algebra Booleana

La condizione all’interno di un if (o while, che vedremo nella guida successiva) è un’espressione booleana formata dal confronto tra più variabili (ma può dipendere dal valore di una sola).

Innanzitutto cos’è un’espressione booleana?
Vi do una definizione generale perché per spiegarla per filo e per segno ci vorrebbe una guida a parte (se volete saperne un po’ di più vi rimando a Wikipedia , se invece volete approfondire l’argomento, basta che lo cerchiate su google e troverete molte guide matematiche che lo trattano).
È un’espressione che deriva dall’algebra di Boole ed è un algebra che utilizza soltanto i valori di verità TRUE e FALSE (indicati anche come 1 e 0).

Questi sono gli operatori di confronto che possiamo utilizzare in una condizione:

  • == uguale
  • != diverso
  • <, <=, >, >= minore, minore o uguale, maggiore, maggiore o uguale

Abbiamo detto che la condizione è booleana, quindi si possono usare i seguenti operatori booleani per confrontare tra loro più condizioni:

  • && corrisponde all’AND
  • || (baretta a sinistra del numero 1) corrisponde all’OR
  • ! coddisponde alla negazione di una condizione, cioè al NOT

Infine per la costruzione delle nostre condizioni possiamo anche usare i vari simboli matematici, quali:

  • + somma
  • – sottrazione
  • / divisione
  • * prodotto
  • % resto della divisione (ad esempio 5%3=2 perchè il 3 sta nel 5 una volta e lascia un resto di 2)

Non state capendo più niente? Tranquilli, di seguito vi farò alcuni semplici esempi con i quali, sono sicuro, vi sarà tutto più chiaro.

Prendiamo le variabili:

  • int n1,n2;
  • String s1,s2;
  • char c1,c2;
  • double d;
  • boolean b;

Ipotiziamo di non conoscere il valore di queste variabili e vediamo come può essere costituita una condizione (nell’esempio uso if ma le stesse identiche condizioni potrebbero essere scritte per un while):

  • if(n1>n2) o if(d==n) confronto tra due numeri, non ha importanza il tipo finché si tratta di fare confronti.
  • if(b) (uguale a scrivere if(b==true)) la variabile booleana costituisce da sola un’espressione booleana potendo assumere il valore TRUE o FALSE.
  • if(s1==s2) o if(s1!=s2) confronto tra due stringe per vedere se sono uguali (pimo caso) o diverse (secondo caso). Ovviamente non si possono usare gli operatori di confronto <, <=, >, >= con delle stringhe perché non avrebbe senso.
  • if(c1>c2) confronto tra caratteri, posso usare tutti gli operatori logici in quanto viene confrontato il codice ASCII di ciascun carattere (il codice ASCI è una codifica che associa a ciascun carattere che noi digitiamo al computer in un numero).
  • NON POSSO confrontare tra loro stringhe e char!
  • if(n1==n2 || s1==s2) la condizione è vera se n1=n2 oppure s1=s2, è sufficiente solo una delle due condizioni affinché l’espressione sia considerata TRUE.
  • if(n1==n2 && s1==s2) la condizione è vera se n1=n2 e s1=s2, è necessario che entrambe le due condizioni siano TRUE affinché l’espressione totale lo sia.
  • if(n1>d && b) la condizione è vera se n1>d e se b=TRUE, anche in questo caso devono essere verificate entrambe.
  • if(!(n1>d && b)) in questo caso invece la condizione è vera se è falsa la condizione del punto precedente; quindi è vera se n1<=d oppure b=FALSE, basta che uno dei due casi sia falso per rendere vera la condizione totale.
  • if(!b && (d>n1 || s1==s2)) vediamo un ultimo complicato esempio, in questo caso affinché la condizione totale sia verificata dobbiamo avere b=FALSE (la negazione ! lo fa diventare TRUE) e, in contemporanea, d>n1 oppure s1=s2 (almeno uno di questi due casi dev’essere vero).

Come sempre, ho fatto di tutto per essere il più chiaro possibile e vi invito a scrivere qui sotto nei commenti se avete dubbi o suggerimenti.

Se avete gradito l’articolo cliccate un bel mi piace e iscrivetevi per non perdervi le prossime lezioni e aiutarci a crescere!

Alla prossima!

Please follow and like us: