2015-11-04 17 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