2017-12-18 3 views
0

로 평가 뭔가를 인쇄 할 때 내가 기대하는 일을하지에서 System.out.println, 그래서 여기에 내 코드입니다 :내가 제목에 대한 내 질문에 설명하는 방법을 잘 모르겠어요 부울

nl.getNull() = null 
nl.getNull() == null = true 
false 

좋아요. 첫 번째 줄은 문제가되지 않습니다. 두 번째 줄 또한 좋습니다.

이제 제 3 행에 문제가 있습니다. 부울로 평가되는 문은 대괄호 안에 있어야한다는 것을 알고 있지만 실행 시간 오류 또는 그 밖의 오류 메시지를 표시해야합니다. sysout의 문자열 부분.

여기 무슨 일 이니?

이것은 해결해야 할 심각한 문제는 아니지만 여기에서 무슨 일이 일어나고 있는지 알고 싶습니다. 알고 싶습니다.

감사합니다.

+0

왜 런타임 오류가 발생합니까? String (' "nl.getNull() == null ="+ nl.getNull() ")을 ==와 함께 null로 비교합니다. 그것은 유효한 Java 코드입니다. –

+0

[연산자 우선 순위] (https://docs.oracle.com/javase/tutorial/java/nutsandbolts/operators.html)를 참조하십시오. – Andreas

+0

덧셈 ('+')은 동등 비교 ('==')보다 우선 순위가 높음 –

답변

3
System.out.println("nl.getNull() == null = " + nl.getNull() == null) 

처음 두 String의 (첫 번째 연결하여, 즉

System.out.println(("nl.getNull() == null = " + nl.getNull()) == null) 

로 평가된다 null가 아닌 - "nl.getNull() == null = ", 두 번째는 null이지만, 모두가 그들을 연결 null는하더라도 것 결과는 a가 아니다 nullString).

이 연결 결과는 String : "nl.getNull() == null = null"입니다.

그런 다음 "nl.getNull() == null = null"null을 비교하면 false이됩니다.

+0

아야! 오늘은 생각하지 않아. 감사 – JohnL

관련 문제