データ型の問題
コードの読み取り01(データ型)
次のコードをコンパイル及び実行すると、どのような結果が得られますか?
public class DataTypeExample {
public static void main(String[] args) {
byte byteValue = 10;
short shortValue = 20;
int intValue = 30;
long longValue = 40L;
float floatValue = 50.5f;
double doubleValue = 60.6;
System.out.println("byteValue: " + byteValue);
System.out.println("shortValue: " + shortValue);
System.out.println("intValue: " + intValue);
System.out.println("longValue: " + longValue);
System.out.println("floatValue: " + floatValue);
System.out.println("doubleValue: " + doubleValue);
}
}
- A)
- byteValue: 10
- shortValue: 20
- intValue: 30
- longValue: 40L
- floatValue: 50.5f
- doubleValue: 60.6
- B)
- byteValue: 10
- shortValue: 20
- intValue: 30
- longValue: 40
- floatValue: 50.5
- doubleValue: 60.6
- C)
- byteValue: 10
- shortValue: 20
- intValue: 30
- longValue: 40
- floatValue: 50.5
- doubleValue: 60
- D)コンパイルエラーが発生します。
正解は、、、、、
Bです。
選択肢Aは、long型の後ろにに「L」とfloat型の後ろに「f」がついていますが、表示するときにはなくなります。
選択しCは、double型の出力で、小数点以下が切り捨てられています。doubule型は小数点を表す型なので、小数点まで表示されます。
Dについては、今回コードはコンパイルエラーになる部分がないので違います。
コードの読み取り02(配列)
以下のプログラムを確認し、実行結果を予測してください。
public class ArrayExample {
public static void main(String[] args) {
int[] array = new int[5];
for (int i = 0; i < array.length; i++) {
array[i] = i + 1;
}
System.out.println(array[3]);
}
}
選択肢
- A)1
- B)2
- C)3
- D)4
正解は、、、
D)4
上のコードでは、int型の「array」リストに5つの要素数を持たせています。
そして、コードの4行目に書かれているfor文を使って、1から順に繰り返し数を代入しています。
注意が必要なのは、要素の添え字は「0」から始まるため、出力している「array[3]」は4番目の数になり、代入された数は「4」となります。
コードの読み取り03(配列)
次のコードを確認してください。
public class ArrayExample {
public static void main(String[] args) {
int[] array = {10, 20, 30, 40, 50};
for (int i = 0; i < array.length; i++) {
System.out.println(array[i]);
}
}
}
上記のコードを実行した場合、結果はどうなりますか?
- A)
- 10
- 20
- 30
- 40
- 50
- B)
- 50
- 40
- 30
- 20
- 10
- C)
- 0
- 1
- 2
- 3
- 4
- D)
- 10
- 11
- 12
- 13
- 14
正解は、、、、
A)です。
配列の要素が、順番に出力されます。
コードの読み取り04(二次元配列)
次のコードを確認してください。
public class ArrayExample {
public static void main(String[] args) {
int[][] array = {{1, 2}, {3, 4, 5}, {6, 7, 8, 9}};
System.out.println(array[1][1]);
}
}
このコードをコンパイルおよび実行すると、どのような結果が得られますか?
- A)2
- B)4
- C)7
- D)コンパイルエラーが発生します。
正解は、、、
B)4です。
array[1][1]
は配列の2行目の2番目の要素を参照していますので、結果は 4
になります。
コードの読み取り05(変数の型推論)
以下のコードを確認してください。
public class VarExample {
public static void main(String[] args) {
var x = 10;
var y = "Hello";
var z = 3.14;
}
}
このコードを実行した場合、変数 x
, y
, z
の型はそれぞれ何になりますか?
- A)
- x : int
- y : String
- z : double
- B)
- x : Integer
- y : String
- z : Double
- C)
- x : int
- y : Object
- z : double
- D)
- x : Integer
- y : Object
- z : Double
正解は、、、
A)x : int, y : String, z : double になります。
var x = 10;
:x
は初期値が整数リテラルであるため、int
型として推論されます。var y = "Hello";
:y
は初期値が文字列リテラルであるため、String
型として推論されます。var z = 5.5;
:z
は初期値が浮動小数点数リテラルであるため、double
型として推論されます。
いかがだったでしょうか?最後に出題した変数の型推論は、どんな変換されるときにどの型へ変換されるのかしっかり覚えてコードの読み取りに取り組みましょう。
コメント