エラーを修正: 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’ というエラーを修正しました。
中括弧 {} を使用することをお勧めします。十分に熟達し、それらを省略できる場所がわかるまで (ブロック内に単一のステートメントがある場合は省略できます)。
