Caution

お使いのブラウザはJavaScriptが実行できない状態になっております。
当サイトはWebプログラミングの情報サイトの為、
JavaScriptが実行できない環境では正しいコンテンツが提供出来ません。
JavaScriptが実行可能な状態でご閲覧頂くようお願い申し上げます。

  1. トップページ
  2. Swift入門編 - 論理演算子について

論理演算子について

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

続きまして『論理演算子』(ろんりえんざんし)についてやっていきましょう。これは前回解説した『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文』をやっていきます。ではではこの辺で。またお会いしましょう。

この記事は桜舞が執筆致しました。

著者が愛する小型哺乳類

桜舞 春人 Sakurama Haruto

ISDN時代から様々なコンテンツを制作しているちょっと髪の毛が心配な東京在住のプログラマー。生粋のロングスリーパーで、10時間以上睡眠を取らないと基本的に体調が悪い。好きなだけ寝れる生活を送るのが夢。ゲームとスポーツと音楽が大好き。誰か髪の毛を分けて下さい。

記事の間違いや著作権の侵害等ございましたらお手数ですがこちらまでご連絡頂ければ幸いです。