エラーを修正: Else Without if in Java
-
Java の
error: 'if' なしの 'else'
-
Java での
error: 'else' without 'if'
の理由 -
Java の
error: 'else' without 'if'
を修正する
今日は、Java でコードを書いているときに、if
なしでelse
と言うエラーについて学びます。 また、このエラーの原因と考えられる原因を突き止め、その解決策を見つけます。
Java の error: 'if' なしの 'else'
通常、この種のエラーは、Java プログラミングの初心者が直面します。 このエラーの原因と解決策に進む前に、このエラーを生成するプログラムを作成して理解しましょう。
したがって、私たちは Python のエキスパートで Java の初心者であると仮定します。 そこで、次のように if-else
を含む Java プログラムを作成します。
コード例:
// import libraries
import java.util.Scanner;
// decide future activity based on the current temperature
public class Test {
public static void main(String[] args) {
int temp;
Scanner scan = new Scanner(System.in);
System.out.println("What's the current temperature?");
temp = scan.nextInt();
if (temp > 95 || temp < 20)
;
System.out.println("Visit our shops");
else if (temp <= 95) if (temp >= 80) System.out.println("Swimming");
else if (temp >= 60) if (temp <= 80) System.out.println("Tennis");
else if (temp >= 40) if (temp < 60) System.out.println("Golf");
else if (temp < 40) if (temp >= 20) System.out.println("Sking");
} // end main()
} // end Test Class
エラー:
このプログラムでは、ユーザーから現在の温度を取得し、現在の温度に基づいて今後のアクティビティを決定します。 上の画像は、コンパイル時に NetBeans IDE が通知する論理エラーを取得していることを示しています。
そのため、エラーを解決するまでコードを実行することさえできません。 そのためには、以下の考えられる理由を知る必要があります。
Java での error: 'else' without 'if'
の理由
エラー自体は説明的なもので、Java コンパイラが else
ステートメントに関連付けられた if
ステートメントを見つけられないことを示しています。 if
ステートメントに関連付けられていない限り、else
ステートメントは実行されないことに注意してください。
そのため、考えられる理由を以下に示します。
- 最初の理由は、
else
ブロックの前にif
ブロックを書き忘れたことです。 if
条件の閉じ括弧がありません。- セミコロンを使用して
if
ステートメントを終了します。
このエラーを解決するにはどうすればよいですか? 次のセクションを見てみましょう。
Java の error: 'else' without 'if'
を修正する
コード例:
// import libraries
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
int temp;
Scanner scan = new Scanner(System.in);
System.out.println("What's the current temperature?");
temp = scan.nextInt();
if (temp > 95 || temp < 20) {
System.out.println("Visit our shops");
} // end if
else if (temp <= 95) {
if (temp >= 80) {
System.out.println("Swimming");
} // end if
else if (temp >= 60) {
if (temp <= 80) {
System.out.println("Tennis");
} // end if
else if (temp >= 40) {
if (temp < 60) {
System.out.println("Golf");
} // end if
else if (temp < 40) {
if (temp >= 20) {
System.out.println("Sking");
} // end if
} // end else-if
} // end else-if
} // end else-if
} // end else-if
} // end main()
} // end Test Class
出力:
What's the current temperature?
96
Visit our shops
if
ステートメントの末尾からセミコロン (;
) を削除し、各ブロックに {}
を配置して、if
なしの ’else’ というエラーを修正しました。
中括弧 {}
を使用することをお勧めします。十分に熟達し、それらを省略できる場所がわかるまで (ブロック内に単一のステートメントがある場合は省略できます)。