こんにちは。
今回から、制御文をみていきます。
制御文とは、処理実行の順序を変化させたり
ループさせたりするロジックです。
今回は、その制御文のうち、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は「商店街割引券」がセット
され、以下の文が出力されます😄
いろいろ応用させると面白いですね✌
今回はここまで🤚
では、また次回。