2012-02-17 112 views
0

我只是寫了一個基本代碼,需要2個輸入和一個操作符並解決。我必須編寫程序來告訴它不要讓0的分割發生,但我的其他人一直有一個錯誤消息,說有一個語法錯誤標記。我不知道爲什麼,因爲如果過去發生過其他情況,我就完成了,而且看起來沒有什麼不同。我是編程新手。 幫助,將不勝感激if語句的語法錯誤

if((operator == '/') && (operand2 == 0)) 
    JOptionPane.showMessageDialog(null,"Division by 0 not allowed"); 
    System.exit(0); 
else 
    add = operand1 + operand2; 
    mult = operand1 * operand2; 
    sub = operand1 - operand2; 
    div = operand1/operand2; 
    remainder = operand1 % operand2; 
+0

http://docs.oracle.com/javase/tutorial/java/nutsandbolts/if.html – ivorykoder 2012-02-17 03:12:08

+0

哪裏是你的操作變量?你應該把你的if/else放在一個塊中用於多個語句。 – 2012-02-17 03:13:40

+0

這是一個功課題嗎?如果是這樣,你應該添加'家庭作業'標籤。 – 2012-02-17 03:13:54

回答

5

如果你有一個塊中的多個語句,你需要用大括號括起來:

if (...) { 
    ... 
} else { 
    ... 
} 
+0

非常感謝。在我猜想我在一個地方錯過了它之前,我正在弄亂那些大括號haha – user1215307 2012-02-17 03:12:17

1

你需要有大括號{} if和周圍否則,如果它們下面有多行代碼。這就是你遇到問題的原因

0

正如前面的其他人所說的,是的,當他們多於一行時,你需要在if語句身體周圍花括號。 Java幾乎只能看到你的代碼的這部分。

if((operator == '/') && (operand2 == 0)) 
    JOptionPane.showMessageDialog(null,"Division by 0 not allowed"); 
else 
    add = operand1 + operand2; 

但是現在,如果你要添加花括號{}你如果和別人塊,爪哇將能夠讀取整個代碼。它看起來是這樣的

if((operator == '/') && (operand2 == 0)) 
{ 
JOptionPane.showMessageDialog(null,"Division by 0 not allowed"); 
System.exit(0); 
} 
else 
{ 
add = operand1 + operand2; 
mult = operand1 * operand2; 
sub = operand1 - operand2; 
div = operand1/operand2; 
remainder = operand1 % operand2; 
} 
+0

你的第一段和代碼示例是錯誤的。編譯器實際看到的是if((operator =='/')&&(operand2 == 0)) JOptionPane.showMessageDialog(null,「Division by 0 not allowed」); System.exit(0); else',沒有'{}'語法錯誤是因爲'else'沒有匹配'if'來啓動塊。 (然而,仍然可以看到System.exit(0);')。IOW,'if'塊在調用showMessageDialog()的結束時關閉,並且終止';',將呼叫留給'exit()'作爲一個新的單一語句,接着是一個孤立的'else'。 – 2012-02-17 19:15:34