質問: 1; 6 while(i <= num); 7 System.out.println(i++); 8 } 9 } 10} 答えは「無限ループになり、何も表示されない」です。 これは6行目がwhile(1 <= 1);となるからでしょうか また、そうした場合、7行目に到達不可能なコードがあるように思い、コンパイルエラーになるのではとも思います。(選択肢には「コンパイルエラーが発生する」というものもあります) なぜ、コンパイルエラーではなく、無限ループが答えになるのでしょうか 返信は夜になると思いますが、よろしくお願いします。
回答: ``` String str = "1"; if (1 == 2) { str = "2"; //実際は絶対入らないけどコンパイルは通る } ``` みたいなコードでもコンパイルエラーにはなりませんね。 「判定した結果、到達しない」みたいなコードはコンパイルエラーにならない気がします。 判定などの要素が全く無く、かつ絶対にその先には行かない、という場合にエラーになる気がします。 ``` String str = "1"; return; str = "2"; //到達不可能 コンパイルエラー ``` ``` String str = "1"; if (1 == 1) { return; } str = "2"; //これはエラーにならない ``` ``` String str = "1"; int num = 0; if (num == 0) { str = "a"; } else if (num != 0) { str = "b"; } else { str = "c"; //ここも絶対来ないけどエラーにならない } ```