サイトアイコン ハジカラ

【Kotlin入門】制御文〜ifとwhenを使ってみる

こんにちは。

今回から、制御文をみていきます。
制御文とは、処理実行の順序を変化させたり
ループさせたりするロジックです。
今回は、その制御文のうち、ifとwhenを書いてみます😄

まずは、ifからです。
if文は、もし〇〇なら△△しなさい、という条件文になります。
1行目の「1..10」は、1から10の数字を意味し、
「IntRange」というデータ型になります。
以下のロジックは、その1から10の範囲かをif文で判定しています。

val hani = (1..10)

if (3 in hani) {

println(“1〜10の数字です。”)
}

if (!(22 in hani)) {

println(“1〜10の数字ではありません。”)
}

3行目は3が範囲内であれば文字出力し、
8行目は22が範囲外であれば文字出力することを意味します。
ifの()内は、条件文がtrueであればその中の処理を
実行し、falseであれば処理を飛ばします。
なお、8行目の「!」は条件がtrueであればfalseに変換し、
falseであればtrueに変換する処理を行います。

実行してみましょう。

↓ 想定通り出力できました🙂

ちなみに、「1..10」に関して、比較対象を数字以外にすると
以下のようにエラーになります😅

さらに、際どいところで、「10」は範囲に入るかというと・・・。

if (10 in hani) {

println(“1〜10の数字です。”)
}

出力されたので、条件文はtrue、つまり範囲内ということに
なりますね。

また、数字と言っても整数だけでなく、少数や
マイナスの数字の条件も対象として使えます。

val hani = (1..10)

if (1.5 in hani) {

println(“1〜10の数字です。”)
}

if (-2 in hani) {

println(“1〜10の数字です。”)
} else {

println(“1〜10の数字ではありません。”)
}

↓ 実行すると出力されました。

さらに、こういう使い方もできます。
これは、if文を変数の代入に使用しています。
条件で入った処理を、変数diffにセットしています。

// 太郎の年齢30歳
val taroOld = 30

// 花子の年齢31歳
val hanakoOld = 31

var diff = if (taroOld > hanakoOld) {

println(“太郎が年上”)

taroOld – hanakoOld } else {

println(“花子が年上”) hanakoOld – taroOld
}

println(“年の差は、${diff}”)

↓ 出力してみましょう。
  太郎30歳、花子31歳なので正しく処理されてますね。  

次は、whenを使ってみます。
when文は、変数や式によって処理を分ける書き方ができます。

↓ こちらは、変数kujibikiの値によって、
  出力文字を出し分けています😀

val kujibiki = “赤色”

when (kujibiki) { “赤色” -> println(“商店街割引券”) “青色” -> println(“オリジナルうちわ”) else -> println(“ポケットティッシュ”) }

↓ 実行すると、赤色に対して、商店街割引券が出力されますね。

次は、先ほどのIntRangeを使ってみましょう。
変数kujibikiに対して、変数keihinの値を変化させています。

val kujibiki = 2
val keihin = when (kujibiki) {

in 1..3 -> “商店街割引券”
in 4..5 -> “オリジナルうちわ”

else -> “ポケットティッシュ”
}

println(“くじ番号${kujibiki}なので、景品の${keihin}を差し上げます。”)

実行します。
kujibikiが「2」なので、keihinは「商店街割引券」がセット
され、以下の文が出力されます😄

いろいろ応用させると面白いですね✌

今回はここまで🤚

では、また次回。

 

【Kotlin入門一覧はこちら】

モバイルバージョンを終了