【第5章】Boolean型や比較演算子、論理演算について詳しく解説

【第5章】Boolean型や比較演算子、論理演算について詳しく解説 基礎勉強
スポンサーリンク
リンコ
リンコ

こんにちは!リンコですピヨ!この記事では自分の勉強の復習もかねて、KotlinでのBoolean型や比較演算子、論理演算について詳しく解説するピヨ!

この第5章では、プログラミング言語であるKotlinのBoolean型や比較演算子、論理演算について、一緒に勉強していきましょう。

この記事を読めばプログラミング未経験の方も、Kotlin入門レベルのBoolean型や比較演算子、論理演算について1つ1つ理解しながら勉強できると思うので、是非最後まで読んで頂ければと思います。

※この記事で出てくる「サンプルコード」は、記述が長く画面からはみ出ている場合がありますが、横にスライドすると表示されるのでご安心ください。

スポンサーリンク

KotlinのBoolean型とは?

KotlinのBoolean型とは?

KotlinのBoolean型について第2章でも簡単に説明しましたが、改めて詳しく説明します。

Kotlinのいろいろな変数の型について詳しく知りたい方は、以下の記事も参考にしてください。

真偽値を表す型

Boolean型の変数が持つことのできる値は、日本語では「真偽」と呼ばれます。「真偽」というは、論理的に正しいのか間違っているのかという意味になります。

日本語だと「真」か「偽」ですが、英語だと「true」か「false」になり、Boolean型の変数は2種類の値しかありません。

例えば、テレビの電源をつけている時は「オン」で消している時は「オフ」という2つの状態で表せますが、このテレビのオンは「真(true)」でオフは「偽(false)」を表します。

このように2つの状態を、真偽値で表すことができ、その真偽値の型が「Boolean型」になります。

リンコ
リンコ

真偽値の型が「Boolean型」ピヨ!

Boolean型を使ってみよう

ではさっそく、Boolean型を使ったサンプルコードを見て、真偽値がどんなコードなのか勉強していきましょう。

サンプルコード

以下が、Boolean型のサンプルコードになります。

//変数numに50を代入
val num = 50
//変数numと50が同じか比較して、その結果をanswer1に代入
val answer1: Boolean = (num==50)
//変数numと100が同じか比較して、その結果をanswer2に代入
val answer2: Boolean = (num==100)
println("変数answer1の値は${answer1}です。")
println("変数answer2の値は${answer2}です。")

このサンプルコードは「==」という比較演算子を使ったコードになります。(num==50)は、右と左の値が同じかどうかを比較しています。Boolean型は、こういった左右の値を比較する際に使います。

※比較演算子については、以下で詳しく勉強していきます。

出力

上記のサンプルコードを実行すると、以下のように出力されます。

変数answer1の値はtrueです。
変数answer2の値はfalseです。

変数answer1では、numの中身の50と50を「==」で比較し、値が同じだったため「true」という結果になりました。

変数answer2では、numの中身の50と100を「==」で比較し、値が違っていたため「false」という結果になりました。

このように、値と値を比較したい時に、Boolean型を使う場合があります。

リンコ
リンコ

Boolean型は、何かを比較したい時に使うピヨ!

型推論したサンプルコード

また、Boolean型も他の型と同様で型推論で、型の記述を省略することができます。

//省略前
val answer3: Boolean = (num==10)
val answer4: Boolean = (num==20)
//省略後
val answer3 = (num==10)
val answer4 = (num==20)

上記では比較演算子の==の記述があるため、Boolean型だと判断されています。また()もつけてもつけなくてもどちらでもOKです。

リンコ
リンコ

型推論は便利ピヨ!

Kotlinの比較演算子とは?

Kotlinの比較演算子とは?

では、上記のサンプルコードで使った「比較演算子」について詳しく勉強していきましょう。比較演算子は、右辺と左辺の値を比較して「真(true)」か「偽」(false)を判断する演算子になります。

比較演算子の種類

比較演算子には以下のように、6種類があります。

種類 意味
== 左と右の値が同じ
< 左より右の値の方が大きい
> 左より右の値の方が小さい
<= 右が左以上の値である(同じ数値でもtrueに含まれる)
>= 右が左以下の値である(同じ数値でもtrueに含まれる)
!= 〇〇ではない
リンコ
リンコ

比較演算子の6つの記号はしっかり覚えるピヨ!

比較演算子を使ってみよう

比較演算子の種類もわかったところで、実際にコードを記述していきましょう。

※「==」を使ったサンプルコードは、上記で記述したため割愛します

「<」「>」のサンプルコード

以下が、比較演算子の「<」「>」を使ったサンプルコードになります。

val num1 = 100
val num2 = 200
val answer1 = (num1<num2) 
val answer2=(num1>num2)
println("num1よりもnum2の方が大きい:${answer1}")
println("num1よりもnum2の方が小さい:${answer2}")

出力

上記の「<」「>」を使ったサンプルコードを実行すると、以下のように出力されます。

num1よりもnum2の方が大きい:true
num1よりもnum2の方が小さい:false

変数answer1ではnum1よりもnum2の方が大きいかどうか、変数answer2ではnum1よりもnum2の方が小さいかどうかを判定しています。

num1の値は100でnum2の値は200とnum2の値の方が大きいので、answer1はtrueでanswer2はfalseとなりました。

「<=」「>=」のサンプルコード

以下が、比較演算子の「<=」「>=」を使ったサンプルコードになります。

val num1 = 100
val num2 = 100
val answer1 = (num1<=num2)
val answer2 = (num1>=num2)
println("num1がnum2以下である:${answer1}")
println("num1がnum2以上である:${answer2}")

出力

上記の「<=」「>=」を使ったサンプルコードを実行すると、以下のように出力されます。

num1がnum2以下である:true
num1がnum2以上である:true

変数answer1ではnum1がnum2以下の値か、変数answer2ではnum1がnum2以上の値かを判定しています。

num1もnum2も値が100なので、answer1もanswer2も判定がtrueとなりました。これは、以上や以下は同じ値でもtrueになるためです。

「!=」のサンプルコード

以下が、比較演算子の「!=」を使ったサンプルコードになります。

val num1 = 50
val num2 = 100
val answer1 = (num1!=100)
val answer2 = (num2!=100)
println("num1は100ではない:${answer1}")
println("num2は100ではない:${answer2}")

出力

上記の「!=」を使ったサンプルコードを実行すると、以下のように出力されます。

num1は100ではない:true
num2は100ではない:false

変数answer1ではnum1が100ではないかどうか、変数answer2ではnum2が100ではないかどうかを判定しています。

num1の値は100ではなく50なのでtrue、num2の値は100なのでfalseという判定になりました。

Kotlinの論理演算とは?

Kotlinの論理演算とは?

もう1つBoolean型を使う演算があるのですが、それが今から勉強する「論理演算」になります。日常で例えると「料理またはお酒が美味しかったら、この居酒屋に入ろう」の「または」や「明日は天気がいい、かつ体調が良かったら外に出かけよう」の「かつ」というのが、論理演算の考え方です。

論理演算の種類

論理演算には以下のように、3種類があります。

種類 記号 意味
AND演算(かつ) && 例えば「(a && b)」という式の場合、aとbの両方がtrueの場合のみ、式の結果がtrueになります。式の結果がtrueになるのは、aとb両方がtrueの場合のみです。
OR演算(または) || 例えば「(a || b)」という式の場合、aかbどちらかがtrueであれば、式の結果がtrueになります。式の結果がfalseになるのは、aとbの両方がfalseの場合のみです。
!演算子(結果が反対) ! Boolean型の変数の前に「!」を記述すると、trueがfalseになりfalseがtrueと、逆の値になります。
リンコ
リンコ

「かつ」や「または」は、日常生活でもよく使ってるピヨ!

論理演算を使ってみよう

論理演算を実際に使ってコードを記述してみましょう。

AND演算のサンプルコード

このコードでは、外に出かけようか迷っていると仮定して、式の結果がtrueであれば出かけるとします。

変数は、天気を表す「weather」と、調子を表す「condition」を使います。

val weather = true
val condition = false
val judgment = (weather && condition)
println("明日は天気も調子も良かったら出かけよう: ${judgment}")

出力

サンプルコードを実行すると、以下のように出力されます。

明日は天気も調子も良かったら出かけよう: false

上記のコードでは、天気を表す「weather」はtrueでしたが、調子を表す「condition」がfalseだったので、出力結果がfalseになりました。

OR演算のサンプルコード

このコードでは、レストランに行こうかどうか迷っていると仮定して、式の結果がtrueであればレストランに入るとします。

変数は、美味しさを表す「delicious」と、安さを表す「cheap」を使います。

val cheap = false
val delicious = true
val judgment = (cheap || delicious)
println("このレストラン入ります: ${judgment}")

出力

サンプルコードを実行すると、以下のように出力されます。

このレストランに入ります: true

上記のコードでは、安さを表す「cheap」は、falseでしたが、美味しさを表す「delicious」がtrueだったので、出力結果もtrueになりました。

!演算のサンプルコード

!演算を使ったコードが、どのように動くのかも見ていきましょう。

val a = true
val b = !a
val c = !b
println("aの値は${a}です。")
println("bの値は${b}です。")
println("cの値は${c}です。")

出力

サンプルコードを実行すると、以下のように出力されます。

aの値はtrueです。
bの値はfalseです。
cの値はtrueです。

このように、最初の変数aにはtrueが入っていましたが、変数bに「!」をつけた変数aの値を代入したら値がfalseに、再び今度は変数cに「!」をつけた変数bの値を代入したら値がtrueになりましたね。

比較演算子と論理演算を一緒に使ってみよう

比較演算子と論理演算を一緒に使ってみよう

では最後に、比較演算子と論理演算を一緒に使って、少し複雑なコードを記述してみましょう。

以下のサンプルコードでは、変数xにセットされた100という数値が「50から150の範囲内にあるかどうか」「50から150の範囲外にあるかどうか」をチェックします。

比較演算子と論理演算を使ったサンプルコード

val x = 100
// xが50以上かつ150以下の場合はtrue判定になる
val a = (50 <= x && x <= 150) 
// xが50より小さい、または150より大きい場合はtrue判定になる
val b = (x < 50 || 150 < x) 
println("変数xが50から150の範囲内にある:$a")
println("変数xが50から150の範囲外にある:$b")

出力

サンプルコードを実行すると、以下のように出力されます。

変数xが50から100の範囲内にある:true
変数xが50から100の範囲外にある:false

上記では変数xの値は100なので「変数xが50から100の範囲内にある」はtrueになり「変数xが50から100の範囲外にある」はfalseになりました。

リンコ
リンコ

組み合わせることで、より複雑なコードが記述できるようになったピヨ!

まとめ

この記事では、プログラミング言語であるKotlinのBoolean型や比較演算子、論理演算について勉強していきましたが、いかがでしたでしょうか?今回の記事をまとめると以下のようになります。

  • Boolean型は、何かを比較したい時に使う
  • 比較演算子は、右辺と左辺の値を比較して「真(true)」か「偽」(false)を判断する演算子
  • 比較演算子の記号には「==」「<」「>」「<=」「>=」「!=」の6つある
  • 「かつ」や「または」が論理演算の考え方
  • 論理演算には「AND演算」「OR演算」「!演算」の3つある

今回勉強した「Boolean型」や「比較演算子、論理演算」はKotlinの入門レベルの知識になるので、何回も読み直してしっかり覚えておきましょう。

リンコ
リンコ

次回の記事では「範囲を表すRange」について勉強していくピヨ!

プログラミング未経験の方や入門レベルの方、Kotlinについて詳しくなりたい方は、また一緒に勉強するピヨ!

コメント

タイトルとURLをコピーしました