表示テーマ
2. 型
学習目標: 数値・文字列・真偽値を区別し、型の違いが結果にどう影響するか説明できる。
ジャンプの回数は整数、強さは小数、ブロックの名前は文字列で表します。Kotlinでは、こうした値の種類を型で区別します。
よく使う4つの型
| 型 | 値の例 | この教材での使い道 |
|---|---|---|
Int | 3、0、-1 | ジャンプの回数などの整数 |
Double | 1.0、1.5 | 小数を使う強さや速度 |
String | "ジャンプ台" | 文字列 |
Boolean | true、false | 条件が成り立つかどうか |
kotlin
val jumps: Int = 3
val power: Double = 1.5
val name: String = "ジャンプ台"
val enabled: Boolean = true名前の後の: 型は「この名前では、この種類の値を扱う」という指定です。val power = 1.5のように省略できるのは、Kotlinが初期値から型を推論するためです。型がなくなるわけではありません。
予想:2と"2"は同じ?
kotlin
println(2 + 3)
println("2" + 3)結果と理由
1行目は5。整数の足し算です。2行目は23。文字列の後ろに3を文字としてつなげています。"2"を自動で数値に変えて計算しているわけではありません。
整数の割り算に注意
5 / 2は2、5.0 / 2.0は2.5です。整数どうしの割り算では、小数部分が切り捨てられます(正確には0に向かって切り詰めます)。
数を文字と区別しよう
数の計算で「5」を、小数の割り算で「2.5」を表示する。
目標の出力
5 2.5
自動採点ではありません。入力を変えた場合も結果を確かめてください。
ヒント 1
"2"はString。2はInt。引用符があるかどうかを見よう。
ヒント 2
整数どうしの割り算では小数部分が残らない。5.0 / 2.0なら?
解答例
fun main() {
val jumps = 2
println(jumps + 3)
println(5.0 / 2.0)
}解答例を閉じて、もう一度自分で書いてみてください。これ以外の正しい書き方もあります。
型を変えたいとき
kotlin
val count = 3
val power: Double = count.toDouble()
println(power) // 3.0val power: Double = countとは書けません。整数をDoubleとして使いたい場合は、toDouble()で変換します。
また、varにしても型は自由には変わりません。var count = 3と宣言した後にcount = "三"とは書けません。
MODでの使用例
JumpPadBlockのsetDeltaMovementには、x・y・z方向の速度を渡しています。教材のコードで使っている1.0はDoubleです。ブロックの表示名のような文字列とは役割が違います。