Javaの勉強をしています。以下のはswitchでも書けますが、ifで書くと、1つ目はコンパイルエラーになりました。
import java.io.*;
class Sample1
{
System.out.println("1〜5で成績を書いて下さい。");
public static void main(String[] args) throws IOException
BufferedReader br =
new BufferedReader(new InputStreamReader(System.in));
String str = br.readLine();
int num = Integer.parseInt(str);
if(num == 1 || num ==2)
{
System.out.println("もっと頑張りましょう。");
}
else if(num == 3)
{
System.out.println("努力が足りません。");
}
else if(num == 4)
{
System.out.println("なかなかの出来です。");
}
else if(num == 5)
{
System.out.println("良くできました!");
}
else(num == 0 || num > 5)
{
System.out.println("1〜5の数字を入力して下さい。")
}
}
else(num == 0 || num >5)を
else if(num == 0 || num > 5)にするとコンパイルするようになりました。
if文ではifが多く続き、それまでの選択肢に当てはまらないものは、
elseで書くようになっているのに、なぜ、elseと書くとコンパイルエラーになり、
else ifとなると、ちゃんとコンパイルされたのでしょうか?
ちなみに、elseにした場合は、eclipseでは、赤字で次のようにエラー表示されます。
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
The left-hand side of an assignment must be a variable
Syntax error, insert "AssignmentOperator Expression" to complete assignment
Syntax error, insert";" to complete Statement
at ◯◯.if Sample1.main(if Sample.java:34)
上の英語(赤字エラー)の意味は一体、何になり、
なぜelseにしたらエラーになり、else ifでそれが解除されるのでしょうか?
どなたかアドバイスして下さいますと幸いです。
