2015-11-04 69 views
0

我得到錯誤:非法啓動表達式和'else'沒有'if'但在這裏找不到任何語法錯誤。Java非法啓動表達式和'else'沒有'if'語法錯誤

public int faultyMethod2(int a, int b) { 
    int result; 

    if((a == 0) || b > 0)) { 
     result = (b/a); 
    } 
    else if (a < 0) { 
     result = (a + b); 
    } 

    return result; 
} 
+0

不平衡括號中的第一個,如果。刪除其中一個) –

回答

1

你只需要在if((a == 0) || b > 0)) {一個錯字,應該是if((a == 0) || (b > 0)) {。你錯過了一個支架。

而後來您需要具有默認值result。要麼你可以給出聲明部分,或者你需要提供一個else部分並給出默認值。

public int faultyMethod2(int a, int b) { 
    int result = 0; 

    if((a == 0) || b > 0)) { 
     result = (b/a); 
    } 
    else if (a < 0) { 
     result = (a + b); 
    } 

return result; 

}

public int faultyMethod2(int a, int b) { 
    int result; 

    if((a == 0) || b > 0)) { 
     result = (b/a); 
    } 
    else if (a < 0) { 
     result = (a + b); 
    }else { 
     result = 0; 
    } 

    return result; 
} 
+0

這將是OP的下一個問題。目前的問題是額外的')'。 –

+0

@PaulBoddington他錯過了一個支架。 –

+1

錯過了一個開始paren,或結束太多,無論他們是不平衡的方式。下一個問題:'if(a == 0){result = b/a}'導致零除。但是,然後OP再次將它命名爲'faultyMethod2'。 ;-) – Andreas