こんにちは!リンコですピヨ!この記事では自分の勉強の復習もかねて、KotlinでのBoolean型や比較演算子、論理演算について詳しく解説するピヨ!
この第5章では、プログラミング言語であるKotlinのBoolean型や比較演算子、論理演算について、一緒に勉強していきましょう。
この記事を読めばプログラミング未経験の方も、Kotlin入門レベルのBoolean型や比較演算子、論理演算について1つ1つ理解しながら勉強できると思うので、是非最後まで読んで頂ければと思います。
※この記事で出てくる「サンプルコード」は、記述が長く画面からはみ出ている場合がありますが、横にスライドすると表示されるのでご安心ください。
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の比較演算子とは?
では、上記のサンプルコードで使った「比較演算子」について詳しく勉強していきましょう。比較演算子は、右辺と左辺の値を比較して「真(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の論理演算とは?
もう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について詳しくなりたい方は、また一緒に勉強するピヨ!
コメント