論理演算子
メニューを表示するにはスワイプしてください
もう一つの演算子のクラスは論理演算子と呼ばれます。他の数値を扱う演算子とは異なり、論理演算子はブール値を扱うために設計されています。論理演算子は3種類あります:
| 演算子 | 論理 |
|---|---|
! | NOT |
|| | OR |
&& | AND |
NOT(!)演算子は、ブール式を否定(反転)するために使用されます。以下はif文を含む簡単な例です:
index.go
12345678package main import "fmt" func main() { if (false) { fmt.Println("Print if True") } }
上記のコードでは、条件がデフォルトで Print となっているため、false 文は実行されません。しかし、式にNOT演算子を含めると、その値が反転し、true と同等になります。
index.go
12345678package main import "fmt" func main() { if (!false) { fmt.Println("Print if True") } }
NOT(!)演算子は、より複雑なケースでも使用可能。否定する前に、式を括弧で囲む必要あり。例えば、3 > 4 を否定したい場合は、!(3 > 4) と記述。
index.go
12345678package main import "fmt" func main() { if (!(3 > 4)) { fmt.Println("Print if True") } }
OR(||)演算子は、2つのオペランドを評価し、少なくとも1つが true の場合に true を返す。
注意
オペランドとは、文や式内で演算子の入力として使用される値または式。例えば、式
1 + 2では、値1と2がオペランド。論理演算子の場合、オペランドは常にブール式または値。
論理演算子の基本的な使い方を示す例:
index.go
1234567package main import "fmt" func main() { fmt.Println(true || false) fmt.Println(false || false) }
最初の文は、式 true のオペランドのいずれかが true || false であるため、true を出力します。一方、2番目の文は両方のオペランドが false であるため、false を出力します。以下は論理和(OR)演算の真理値表です。
注意
真理値表は、すべての入力の組み合わせとそれに対応する出力値を示す論理的な表現です。
| Input | Output |
|---|---|
true || true | true |
true || false | true |
false || true | true |
false || false | false |
論理和演算子を連結して複数のオペランドを組み合わせることができます。この場合、式は左から右へ評価されます。
index.go
123456package main import "fmt" func main() { fmt.Println(false || false || true || false) }
上記の式の評価順序は次のとおりです。
注意
すべての論理式はデフォルトで左から右へ評価されます。
論理積(&&)演算子は論理和(||)演算子と似ていますが、両方のオペランドがtrueの場合のみtrueを返します。論理積(&&)演算の真理値表は以下のとおりです。
| Input | Output |
|---|---|
true && true | true |
true && false | false |
false && true | false |
false && false | false |
論理演算子の実用的な使用例を示す、より複雑な例を以下に示します。コードを確認し、その動作を理解してください。
index.go
1234567891011package 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) } }
上記の例では、複数の演算子と値を使用して、より複雑な条件を作成している点に注意してください。実行時には、式は演算子の優先順位に基づいて評価されます。優先順位の高い演算子が先に評価されるため、処理される順序を理解することが重要です。比較演算子は論理演算子よりも高い優先順位を持ちます。
以下は、論理演算子の優先順位を示す図です。
次の図は、式 1 <= x && x <= 10 || 90 <= x && x <= 100 がどのように評価されるかを示しています。
フィードバックありがとうございます!
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください