2017-12-01 1 views
-4

なぜ私はコンパイル時に 'if'なしで 'else'エラーが表示されます。誰もがなぜ私はコンパイル時にエラーが出るのですか?誰でも詳細を私に説明することができます

class Test 
    { 
     public static void main(String[] args) 
     { 
      if(false) 
       if(true) 
        if(false) 
        else 
         System.out.println("1"); 
       else 
        System.out.println("2"); 
      else 
       System.out.println("3"); 
     } 
    } 
+3

ブレースを使用するだけで、離れます。 – tkausl

+2

'もしあれば(偽)else'は何をすべきでしょうか? –

答えて

1

最も内側if(false)文が欠落しているの詳細を私に説明できます。あなたは括弧を使用しない限り、あなたはif後にノーオペレーション文を追加する必要があります:

if(false); 
else 
    System.out.println("1"); 

それとも、if秒のあなたの全体のチェーン反転させることができます:2があり

if(true) 
    System.out.println("3"); 
else if(false) 
    System.out.println("2"); 
else if(true) 
    System.out.println("1"); 
0

をここで使用されているコンセプト: 1. Ifステートメントに中括弧を使用しない場合、コンパイラはIfステートメントの次の行だけを完全なIfブロックと見なします。 2. else文だけを使用することはできません。簡単な言葉では、if文がある場合に限り、else文を使用できます。

最も内側のIfステートメントでは、ここで中括弧を使用しなかったので、実行する唯一のステートメントは「else」です。そして、私たちはelse文だけを使うことはできません。

関連する問題