2012-02-17 2 views
0

2 입력 및 연산자를 사용하여 해결하는 기본 코드를 작성하고 있습니다. 0으로 나누는 것을 허용하지 않도록 프로그램을 코딩해야하지만 다른 하나는 구문 오류 토큰이 있다는 오류 메시지가 계속 표시됩니다. 나는 왜 과거에 다른 문장이 있었는지 그리고 전혀 다른 것처럼 보이지 않기 때문에 왜 그런지 모르겠습니다. 나는 프로그래밍에 새로운 사람이다. 당신이 블록 내에서 하나 이상의 문이있는 경우 도움말이else 문에 구문 오류가 발생했습니다.

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

숙제 문제입니까? 그렇다면'숙제'태그를 추가해야합니다. –

답변

5

을 감상 할 수있다, 당신은 중괄호로 묶어야합니다 :

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

대단히 감사합니다. 나는 그 중괄호로 주위를 어슬렁 거리고 있었다. 나는 그게 정확한 한 곳에서 그것을 놓쳤다 고 생각한다. – user1215307

1

당신은 경우와 중괄호 {}가 필요합니다 그 아래에 한 줄 이상의 코드가 있다면 else. 이것은 당신이 문제를 겪고있는 이유입니다.

0

제게 앞서 언급했듯이, 예, 두 줄 이상일 경우 if 문 bodys를 감싸는 중괄호가 있어야합니다. 자바는 코드의이 부분을 거의 보지 못합니다. 당신이 중괄호를 추가한다면

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'로 시작하고'{}'없이 구문 오류는 블록을 시작하는'if'와 일치하지 않는'else' 때문에 발생합니다. 그러나'if' 블록은'showMessageDialog()'에 대한 호출의 끝으로 닫히고';'는 끝나고 호출을 남겨둔다. 'exit()'를 새로운 단일 문으로 사용하고 고아 인 else 명령을 사용하십시오. –

관련 문제