2012-02-17 3 views
0

Я просто пишу базовый код, который принимает 2 входа и оператор и решает. Я должен закодировать программу, чтобы сообщить ей, чтобы не было деления на 0, но у меня есть сообщение об ошибке, в котором говорится, что есть токен синтаксической ошибки. Я не уверен, почему, потому что я делал, если еще какие-то заявления в прошлом, и это не выглядит иначе. Я новичок в программировании. Помощь будут оцененыОшибка синтаксиса if if statement

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

+0

Где переменная оператор ?? И вы должны поместить ваш if/else в блок для нескольких операторов. –

+0

Это вопрос домашней работы? Если это так, вы должны добавить тег 'homework'. –

ответ

5

Если у вас есть более одного оператора в пределах блока, вы должны окружить его со скобами:

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

большое спасибо. Я возился с этими фигурными скобками, прежде чем догадывался, что я пропустил это в одном месте, которое было правильным. Haha. – user1215307

1

Вы должны иметь фигурные скобки {} по всему, если и else, если между ними существует более одной строки кода. Именно по этой причине у вас возникла проблема.

0

Как уже сообщали другие, да, у вас должны быть фигурные скобки, окружающие ваши инструкции if, если они более одной строки. Java в значительной степени видит только эту часть вашего кода.

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

Теперь, однако, если вы должны были добавить фигурные скобки {}, чтобы ваши, если и остальные блоки, Java будет иметь возможность читать весь код. Это выглядит примерно так

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'. –