Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Operatori Logici | Strutture di Controllo
Introduzione a Golang

bookOperatori Logici

Un'altra categoria di operatori è rappresentata dagli operatori logici. A differenza di altri operatori che operano su valori numerici, gli operatori logici sono progettati per gestire valori booleani. Esistono tre operatori logici:

OperatoreLogica
!NOT
||OR
&&AND

L'operatore NOT (!) viene utilizzato per negare (invertire) un'espressione booleana. Ecco un semplice esempio che include una if-statement:

index.go

index.go

copy
12345678
package main import "fmt" func main() { if (false) { fmt.Println("Print if True") } }

Nel codice sopra, l'istruzione Print non verrà eseguita perché la condizione è false per impostazione predefinita. Tuttavia, se includiamo un operatore NOT nell'espressione, questa verrà negata e, di conseguenza, sarà equivalente a true:

index.go

index.go

copy
12345678
package main import "fmt" func main() { if (!false) { fmt.Println("Print if True") } }

Possiamo anche utilizzare l'operatore NOT (!) in casi più complessi. Tuttavia, è necessario racchiudere le espressioni tra parentesi prima di negarle. Ad esempio, se vogliamo negare 3 > 4, scriveremmo !(3 > 4):

index.go

index.go

copy
12345678
package main import "fmt" func main() { if (!(3 > 4)) { fmt.Println("Print if True") } }

L'operatore OR (||) valuta due operandi e restituisce true se almeno uno degli operandi è true.

Nota

Un operando si riferisce a un valore o a un'espressione utilizzata come input per un operatore in un'istruzione o espressione. Ad esempio, nell'espressione 1 + 2, i valori 1 e 2 sono operandi. Nel caso degli operatori logici, un operando è sempre un'espressione o un valore booleano.

Ecco un esempio che illustra l'utilizzo di base degli operatori logici:

index.go

index.go

copy
1234567
package main import "fmt" func main() { fmt.Println(true || false) fmt.Println(false || false) }

La prima istruzione restituisce true perché uno degli operandi nell'espressione true || false è true. Al contrario, la seconda istruzione restituisce false poiché entrambi gli operandi sono false in quell'espressione. Di seguito è riportata la tabella della verità per l'operatore logico OR:

Nota

Una tabella della verità è una rappresentazione logica che mostra tutte le possibili combinazioni di ingressi e i relativi valori di uscita.

InputOutput
true || truetrue
true || falsetrue
false || truetrue
false || falsefalse

È possibile concatenare operatori logici OR per combinare più operandi. In questo caso, l'espressione viene valutata da sinistra a destra:

index.go

index.go

copy
123456
package main import "fmt" func main() { fmt.Println(false || false || true || false) }

L'ordine di valutazione per l'espressione sopra è il seguente:

Nota

Per impostazione predefinita, tutte le espressioni logiche vengono valutate da sinistra a destra.

L'operatore logico AND (&&) è simile all'operatore OR (||), ma restituisce true solo se entrambi gli operandi hanno valore true. La tabella della verità per l'operazione logica AND (&&) è fornita di seguito:

InputOutput
true && truetrue
true && falsefalse
false && truefalse
false && falsefalse

Segue un esempio più complesso che dimostra un utilizzo pratico degli operatori logici. Prendere un momento per esaminare il codice e comprenderne il funzionamento:

index.go

index.go

copy
1234567891011
package main import "fmt" func main() { var x int = 99 if (1 <= x && x <= 10 || 90 <= x && x <= 100) { fmt.Printf("The value %d is in the range 1-10 or 90-100", x) } else { fmt.Printf("The value %d is not in the range 1-10 or 90-100", x) } }

Si noti che nell'esempio sopra vengono utilizzati più operatori e valori per creare una condizione più complessa. Durante l'esecuzione, l'espressione viene valutata in base alla priorità degli operatori. Gli operatori con priorità più alta vengono valutati per primi, ed è importante comprendere l'ordine in cui vengono elaborati. Gli operatori di confronto hanno una priorità superiore rispetto agli operatori logici.

Di seguito è riportato un diagramma che illustra la classifica di priorità degli operatori logici:

Il diagramma seguente illustra come viene valutata l'espressione 1 <= x && x <= 10 || 90 <= x && x <= 100:

question mark

Quale delle seguenti espressioni possiamo utilizzare nell'istruzione if per verificare se una forma è un quadrato in base a width e height?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 3. Capitolo 4

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Suggested prompts:

Can you explain the difference between the AND and OR logical operators?

What does operator precedence mean in logical expressions?

Can you give more examples of using logical operators in code?

bookOperatori Logici

Scorri per mostrare il menu

Un'altra categoria di operatori è rappresentata dagli operatori logici. A differenza di altri operatori che operano su valori numerici, gli operatori logici sono progettati per gestire valori booleani. Esistono tre operatori logici:

OperatoreLogica
!NOT
||OR
&&AND

L'operatore NOT (!) viene utilizzato per negare (invertire) un'espressione booleana. Ecco un semplice esempio che include una if-statement:

index.go

index.go

copy
12345678
package main import "fmt" func main() { if (false) { fmt.Println("Print if True") } }

Nel codice sopra, l'istruzione Print non verrà eseguita perché la condizione è false per impostazione predefinita. Tuttavia, se includiamo un operatore NOT nell'espressione, questa verrà negata e, di conseguenza, sarà equivalente a true:

index.go

index.go

copy
12345678
package main import "fmt" func main() { if (!false) { fmt.Println("Print if True") } }

Possiamo anche utilizzare l'operatore NOT (!) in casi più complessi. Tuttavia, è necessario racchiudere le espressioni tra parentesi prima di negarle. Ad esempio, se vogliamo negare 3 > 4, scriveremmo !(3 > 4):

index.go

index.go

copy
12345678
package main import "fmt" func main() { if (!(3 > 4)) { fmt.Println("Print if True") } }

L'operatore OR (||) valuta due operandi e restituisce true se almeno uno degli operandi è true.

Nota

Un operando si riferisce a un valore o a un'espressione utilizzata come input per un operatore in un'istruzione o espressione. Ad esempio, nell'espressione 1 + 2, i valori 1 e 2 sono operandi. Nel caso degli operatori logici, un operando è sempre un'espressione o un valore booleano.

Ecco un esempio che illustra l'utilizzo di base degli operatori logici:

index.go

index.go

copy
1234567
package main import "fmt" func main() { fmt.Println(true || false) fmt.Println(false || false) }

La prima istruzione restituisce true perché uno degli operandi nell'espressione true || false è true. Al contrario, la seconda istruzione restituisce false poiché entrambi gli operandi sono false in quell'espressione. Di seguito è riportata la tabella della verità per l'operatore logico OR:

Nota

Una tabella della verità è una rappresentazione logica che mostra tutte le possibili combinazioni di ingressi e i relativi valori di uscita.

InputOutput
true || truetrue
true || falsetrue
false || truetrue
false || falsefalse

È possibile concatenare operatori logici OR per combinare più operandi. In questo caso, l'espressione viene valutata da sinistra a destra:

index.go

index.go

copy
123456
package main import "fmt" func main() { fmt.Println(false || false || true || false) }

L'ordine di valutazione per l'espressione sopra è il seguente:

Nota

Per impostazione predefinita, tutte le espressioni logiche vengono valutate da sinistra a destra.

L'operatore logico AND (&&) è simile all'operatore OR (||), ma restituisce true solo se entrambi gli operandi hanno valore true. La tabella della verità per l'operazione logica AND (&&) è fornita di seguito:

InputOutput
true && truetrue
true && falsefalse
false && truefalse
false && falsefalse

Segue un esempio più complesso che dimostra un utilizzo pratico degli operatori logici. Prendere un momento per esaminare il codice e comprenderne il funzionamento:

index.go

index.go

copy
1234567891011
package main import "fmt" func main() { var x int = 99 if (1 <= x && x <= 10 || 90 <= x && x <= 100) { fmt.Printf("The value %d is in the range 1-10 or 90-100", x) } else { fmt.Printf("The value %d is not in the range 1-10 or 90-100", x) } }

Si noti che nell'esempio sopra vengono utilizzati più operatori e valori per creare una condizione più complessa. Durante l'esecuzione, l'espressione viene valutata in base alla priorità degli operatori. Gli operatori con priorità più alta vengono valutati per primi, ed è importante comprendere l'ordine in cui vengono elaborati. Gli operatori di confronto hanno una priorità superiore rispetto agli operatori logici.

Di seguito è riportato un diagramma che illustra la classifica di priorità degli operatori logici:

Il diagramma seguente illustra come viene valutata l'espressione 1 <= x && x <= 10 || 90 <= x && x <= 100:

question mark

Quale delle seguenti espressioni possiamo utilizzare nell'istruzione if per verificare se una forma è un quadrato in base a width e height?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 3. Capitolo 4
some-alt