Language
日本語
English

Caution

JavaScript is disabled in your browser.
This site uses JavaScript for features such as search.
For the best experience, please enable JavaScript before browsing this site.

  1. Home
  2. SwiftBeginner - About Logical Operators

About Logical Operators - Japanese Only

みなさまどうもおはこんばんにちわ。

続きまして『論理演算子』(ろんりえんざんし)についてやっていきましょう。これは前回解説した『if文』と併用されることが多い演算子となります。

考え方としては『~かつ~だった場合』や『~または~だった場合』といったような感じになりますね。使用頻度がめちゃめちゃ高いのでバッチリマスターしちゃいましょう。

まず論理演算子は『&&』、『||』、『!』の3つがあります。最初に『&&』から確認していきましょう。

『&&』は『論理積演算子』(ろんりせきえんざんし)と呼ばれます。実際の現場では『論理積演算子』という単語はあまり使われません。単純に「アンパサンド2つのやつ」とか「アンドアンド」とか呼ばれていることが多い気がします。

さて、この『&&』の使い方ですが、『if文』と組み合わせるとこのような記述方法になります。

if true && true { // これは実行されます。
    print("実行されました。")
}

『if文』の『条件式』に注目ですね、『true && true』と記述されています。『&&』は『両オペランド(両辺)がtrue』だったときにその式全体の評価が『true』となる、といった演算をします。上記の場合は両オペランドが『true』となっていますね、なので『if文』の処理が実行されるといった感じです。

逆にこのように

if true && false { // これは実行されません。
    print("実行されました。")
}

片一方が『false』となっている場合は実行されません。

『false && false』となっている場合も同じです。

if false && false { // これは実行されません。
    print("実行されました。")
}

『&&』は解説書などでは『~かつ~』と解説されることが多いです。もし忘れてしまったら「if文 かつ」と検索してみると幸せになれるかもしれません。

さて続いて『||』の使い方です。『論理和演算子』(ろんりわえんざんし)と呼ばれます。こちらも現場では『論理和演算子』とは呼ばれずに「パイプ2つ」とか「罫線2つ」とか呼ばれることが多いですね。

『||』は「両オペランド(両辺)の片一方がtrue」だったときにその式全体の評価が『true』となる、といった演算をします。

if true || false { // これは実行されます。
    print("実行されました。")
}

上記は『true || false』となっていますね。これは片方のオペランドが『true』となっているので『if文』が実行されます。続いて以下を確認してください。

if false || false { // これは実行されません。
    print("実行されました。")
}

この場合は『false || false』となっており両方が『false』ですね。なので、実行されません。

ちなみに左右どちらが『true』でも実行されますので『false || true』となっていたり、『true || true』となっていても実行されます。間違いやすいので気をつけて下さい。

if false || true { // これは実行されます。
    print("実行されました。")
}

if true || true { // これは実行されます。
    print("実行されました。")
}

続いて『!』です。『!』は『論理否定演算子』(ろんりひていえんざんし)と呼ばれます。

ちなみに『論理演算子』としての『!』が『論理否定演算子』と呼ばれる、という話なので単純に記号としての『!』は『ビックリマーク』とか『エクスクラメーション』とか『感嘆符』と呼んでしまってOKです。

これは以下のように使います。

if !false {
    print("実行されました。")
}

『!false』に注目です。なにやら『false』の頭に『!』がくっついていますね。

この『!』はちょっと独特で、まずオペランドは1つしかありません。『&&』と『||』は左右のオペランドを評価する、といった感じの演算でしたが、『!』のオペランドは1つだけです。

※オペランドについて忘れてしまった方はこちらへどうぞ。

さてこの『!』ですが、そのオペランドの真偽値を反転させる、という動作になります。『print()』を使ってちょいと試してみましょう。こんな感じになります。

print(!true) // 『false』が出力されます。
print(!false) // 『true』が出力されます。

このように真偽値を反転させるのが『!』です。よく使われる構文なので覚えておきましょう。

そしてちょっと注意点です。Swiftの『論理演算子』のオペランド(演算対象)となれるのは真偽値のみ(『true』または『false』のみ)になります

例えば以下のような処理を書くとさくっとエラーになります。

// 以下は全てエラーです。
print(1 && 2)
print(1 || 2)
print(!1)

他のプログラム言語では「『true』扱いされる値と『false』扱いされる値」が決められていたりしますので、『1 || 0』とか『!1』とか『!"初音ミク"』なんて記述もOKだったりしますが、Swiftの場合は全てNGです。

これ、他の言語に精通している方は間違えないようにして下さい。結構ひっかりやすいポイントになるかと思います。

というわけで今回の記事はここまでです。

続いての記事では『switch文』をやっていきます。ではではこの辺で。またお会いしましょう。

This article was written by Sakurama.

Author's beloved small mammal

桜舞 春人 Sakurama Haruto

A Tokyo-based programmer who has been creating various content since the ISDN era, with a bit of concern about his hair. A true long sleeper who generally feels unwell without at least 10 hours of sleep. His dream is to live a life where he can sleep as much as he wants. Loves games, sports, and music. Please share some hair with him.

If you find any errors or copyright issues, please .