2013-04-10 2 views
-1

18-21 번 줄에서 왜이 오류가 발생하는지 알아야합니다. 나는 브래킷과 관련된 문제일지도 모른다고 느끼고 있지만 그것을 이해할 수는 없습니다. "불법적 인 표현의 시작"신참 실수?

import java.util.Scanner; 

public class Proj4_1 { 

public static void main(String [] args) { 
    Scanner reader = new Scanner(System.in); 

    int numb1 =; 
    int numb2 =; 
    int div =; 
    int remainder =; 

    System.out.println("Enter a number: "); 
    numb1 = reader.nextint(); 

    System.out.print(numb1); 

    System.out.println("Enter another number: "); 
    numb2 = reader.nextint(); 

    System.out.print(numb2); 

    if (numb1>numb2){ 
     div = numb1/numb2; 
     remainder = numb1 % numb2; 
    }else{ 
    if (numb2>numb1) 
     div = numb2/numb1; 
     remainder = numb2 % numb2; 
    } 

    System.out.println("The answer quotient is " +div+ "with a remainder of" +remainder); 

어떤 도움이나 조언

크게

+0

컴파일러 오류는 런타임 오류 일 수 없습니다. –

+0

'int numb1 =;'나에게 기괴한 것 같은데, 내 생각에 문제가있는 것 같아. –

+0

@LuiggiMendoza 어떻게 컴파일러 자체가 추락하면? –

답변

6

음, 이것 좀 봐 미리, 감사 감사하겠습니다 :

초기 값으로 예상하고있다 무엇
int numb1 =; 

?

int numb1; 

을 ...하지만 당신은 가치를 부여하지 않고 거기에 =을 떠날 수 :

이 같은 값을 지정하지 않고 변수를 선언 할 수 있습니다.

public static void main(String [] args) { 
    Scanner reader = new Scanner(System.in); 

    System.out.println("Enter a number: "); 
    // Fixed case of nextInt as well... 
    int numb1 = reader.nextInt(); 

    System.out.print(numb1); 

    System.out.println("Enter another number: "); 
    int numb2 = reader.nextInt(); 

    System.out.print(numb2); 

    // etc 
} 

당신은 방법의 상단에있는 모든 변수를 선언 할 필요가 없습니다 : 당신이 그것을 값을 제공 할 준비가 될 때까지

그러나, 나는 개인적으로 변수를 선언 할을 기다릴 것입니다 , 그리고 코드를 필요로하는 곳에서만 선언하면 코드는 일반적으로 깨끗합니다.

편집 : 잘못이 if 블록도있다 : 당신은 여는 중괄호를 놓친

if (numb2>numb1) 
    div = numb2/numb1; 
    remainder = numb2 % numb2; 
} 

, 당신은 효과적으로이있어 의미

if (numb2>numb1) { 
    div = numb2/numb1; 
} 
remainder = numb2 % numb2; 
// This closing brace is now dangling! 
} 

당신을 이 의미는 다음과 같습니다.

if (numb2 > numb1) { 
    div = numb2/numb1; 
    remainder = numb2 % numb2; 
} 

코드를 정기적으로 컴파일하는 경우 많은 사람들이이 코드를 사용하지 못하게 될 것입니다. 과 다릅니다. 하나의 컴파일 타임 오류가 발생하는 즉시 중지하고 이해하고 수정해야합니다. 그렇게하면 한 번에 이해하려고하는 압도적 인 수의 문제에 결코 직면 할 수 없습니다. 또한 서로 상호 작용하는 여러 오류에 대해 걱정할 필요가 없기 때문에 인생을 훨씬 어렵게 만들 수 있습니다.

+0

23 번째 28 번째 라인 – user2267726

+0

@ user2267726 : 예,하지만'= '로 선언하면 어떻게 될 것으로 기대합니까? –

+0

또한 if (numb2> numb1) 문장 1; 문장 2; }'(여는 괄호). –

관련 문제