2012-12-24 1 views
0

마지막 인쇄 문의 다음 프로그램에서 매우 간단한 오류가 있습니다. 그러나 나는 그 뒤에 정확한 이유를 모른다. 논리조차도 정확하고 구문입니다.빼기 프로그램에서 아주 간단한 오류

오류의 정확한 원인을 알려주세요.

감사

당신이 문자열 연결을하려고하는, 때문에 첫 번째 피연산자가 문자열로의
import java.util.Scanner; 
public class main 
{ 
public static void main(String args[]) 
{ 
    int c,d; 
    Scanner s = new Scanner(System.in); 
    System.out.print("Enter the first number : "); 
    c = s.nextInt(); 
    System.out.print("Enter the second number : "); 
    d = s.nextInt(); 

    System.out.println("The sub is : "+ c-d); 

} 
} 
+3

미래에 오류에 대해 물어볼 경우 * 오류가 무엇인지 말하십시오. –

+0

@JonSkeet - 사실은 그랬 겠지만 CMD에서 아무 것도 복사 할 수 없습니다. 하지만 다음 번에 직접 써 보겠습니다. –

+2

마우스 오른쪽 버튼으로 클릭하고 "마크"를 선택한 다음 복사 할 영역을 드래그 한 다음 Enter 키를 누릅니다. –

답변

0

사용

System.out.println("The sub is : "+ (c-d)); 

대신

System.out.println("The sub is : "+ c-d); 

그리고 확인하십시오.

2

.

System.out.println("The sub is : "+ (c-d)); 

통지 그 (c-d) 괄호 :

이 시도.

컴파일러는 - 연산자가 string 및 int에 대해 정의되지 않았다고 불평합니다.

오퍼레이터 - 인수 유형은 문자열 미정 결과 스트링 일 것이다 Sub is:+ c 것을

참고 int이며. 지금

`Sub is:+ c` - d; 
^^String  - int 
+0

@ShivamChopra 왜냐하면 문자열의 + 연산자가 연결되어 있기 때문입니다. – PermGenError

+0

그래, 그게 자바에서 병합에 사용되는 건 알지만 왜 ---- –

+0

@ShivamChopra 왜냐하면 첫 번째 두 피연산자를'+ '로 연결하기 때문에'-' 연산자가 작동하지 않습니다. 문자열 컴파일러가 불평 할 경우 – PermGenError

2

당신은 뺄셈 괄호가 필요합니다

System.out.println("The sub is : " + (c - d)); 

이 괄호없이 +- 운영자가 있기 때문에 동일한 우선 순위와 연관이 왼쪽에서 오른쪽입니다. 그래서 컴파일러는이 기록 된 것처럼 구문 분석을 시도합니다

System.out.println(("The sub is : " + c) - d); 

첫 번째 부분은 괜찮와 String 결과를 생성하는 표현이다. 안타깝게도 왼쪽면이 String이고 오른쪽이 int 인 표현식에 - 연산자를 적용 할 수있는 방법이 없습니다. 그 지금 작업하는 경우