19.0330
when文 と スコーピング
when文 とは、 if/ else if / else 文 のように、
条件によって、プログラムの流れを、コントロールするための、構文です。
when文 の利点は、まるで、「箇条書き」 のように、条件を、書きだすことができるため、
「ルールさえ知っていれば」、全体像を、素早く把握することが出来るでしょう。
イメージとしては:
when(チェックすべき) {
チェックする条件①の時 ⇒ true なら、適用される
チェックする条件②の時 ⇒ true なら、適用される
チェックする条件③の時 ⇒ true なら、適用される
チェックする条件④の時 ⇒ true なら、適用される
チェックする条件⑤の時 ⇒ true なら、適用される
それ以外の時 ⇒ 適用される
}
このイメージをもとに、実際のコードを書いてみましょう。
// TestWhen.kt(テストwhen)
fun main(){
val x: Int = 18
when(x) {
in 1..5 -> println("1~5")
in 6..10 -> println("6~10")
in 11..15 -> println("11~15")
in 16..20 -> println("16~20")
else -> println("else")
}
}
// 16~20
この when の仕組みは、
チェックすべき値(ここでは、Int型変数x)が、
in 1..5 から else まで
関連付けられて、チェックしていくことです。
そして、この関連付けて、チェックしていくことを、
スコーピング
と言います。
3つの if文関連 を、やったので、もう直感的に理解できますね。
when文 に慣れるために、もう一つ、例文を見てみましょう。
// TestWhen2.kt(テストwhen2)
fun main(){
val testString: String = "PineApple"
when(testString) {
"Lemon" -> print("レモン")
"Apple" -> print("りんご")
"Grape" ->print("ぶどう")
"PineApple" -> print("パイナップル")
"strawberry" -> print("いちご")
// else は、必須ではありません。
}
}
// パイナップル
と、ここで、ネットを検索していたら、対話式のプログラム(インタラクティブな)を、
書く方法を、見つけました。
しかも、簡単です!
Kotlin の、ライブラリなので、Javaコード を、importする必要もありません。
つまり、
readLine()関数
を使うだけです。
まだ、関数については、詳しく触れていないので、ざっと読んでください。
val yourEnter = readLine()
(val/変数ですよ yourEnter/変数名 = readLine()/readLine関数があなたの入力を返します)
こんなコードを書いてください。// TestReadLine.kt
fun main(){
val yourEnter = readLine()
when(yourEnter){
"1" -> print("one")
"2" -> print("two")
else -> print("too difficult")
}
}
// あなたの入力に合わせて、答えます。
このコードを実行すると、、残念ながら、TryKotlin では、実行できません
、IntelliJならOK、、
下のコンソール画面は、何も実行されてないように見えますが、
ここに、1 を、入力すると(これは、String型 になることになっています)
コンソールが、one と、答えます。
2 の時は、two と、答えます。
それ以外の時は、too difficult(難しすぎる)と、答えることになっています。
はっきり言って、テストのための変数の定義が、
val yourEnter = readLine()
に、なっただけだから、簡単すぎます、、素晴らしいです。
もし、あなたが、IntelliJ を、使っているのであれば、
これから積極的に使ってください。
より、リアルな、コーディング学習体験が、出来ると思いますので。
まとめ
簡単なまとめですが、このコードを、理解できますか?
以上です。