【六日目】Java学習
1. JavaSilver試験問題にて間違えた箇所
・public static void main(String args)←[]の記述がない場合
答え:実行時エラーが発生する。main()メソッドのルールには従っていないがJava言語の文法として間違ってはいないためコンパイルは可能。
コンパイルエラーはあくまで文法として誤っている場合のみ検出する
よって実行時エラーとなる回答
・識別子として使用できないものの選択にてNULLを選択→誤り
→リテラルとしてnullはあるが大文字ではないのでNULLは使用可能予約語は全て小文字と記憶
・下記のプログラムにて実行結果が想定と違った
一つ目のifの(i < j)時点でtrueのため、その後の(k-- > j)が計算されない認識ではなかった14
14
という回答ではなく
15
14
が正解。
public class Main {
public static void main(String[] args) {
int i = 5;
int j = 10;
int k = 15;
if((i < j) || (k-- > j)) {
System.out.println(k);
}
if((i < j) && (--k < j)) {
System.out.println(k);
}
System.out.println(k);
}
}
2. 作成したプログラム
public class Main {
public static void main(String[] args) {
String[] array = new String[1];
array[0] = 10;
System.out.print(array[0]);
}
}
実行結果:Main.java:4: エラー: 不適合な型: intをStringに変換できません:
array[0] = 10;
^
エラー1個
エラー: コンパイルが失敗しました
public class Main {
public static void main(String[] args) {
String[] array = new String[1];
array[0] = "10";
System.out.print(array[0]);
}
}
実行結果:>java Main.java
10
public class Main {
public static void main(String[] args) {
String[][]array = {{"a","b","c","aa","bb"}, {"d","e","f"},{"ss"},{"hh"}};
System.out.print(array.length + " ");
System.out.print(array[1][0]);
}
}
実行結果:java Main.java
4 d
public class Main {
public static void main(String[] args) {
String[][]array = {{"a"}};
System.out.print(array.length + " ");
System.out.print(array[0][0]);
}
}
実行結果:>java Main.java
1 a
public class Main {
public static void main(String[] args) {
float ans = 7/6;
System.out.print(ans);
}
}
実行結果:>java Main.java
1.0
public class Main {
public static void main(String[] args) {
float ans = 7f/6f;
System.out.print(ans);
}
}
実行結果:java Main.java
1.1666666
public class Main {
public static void main(String[] args) {
double d = 10.5;
int i = (int)d;
System.out.println(i);
foo((short)i);
}
static void foo(short a) {
System.out.println(a);
}
}
実行結果:java Main.java
10
10
public class Main {
public static void main(String[] args) {
int[] ary = new int[3];<