2012-04-29 4 views
1

이것은 전혀 의미가 없습니다.내 if 문은 항상 true를 반환합니다.

이 내 코드입니다 :

boolean that = false; 
     if (that == true); 
     { 
      System.out.println("That is " + that); 
     } 

그리고 아직 내 출력 난 자바에서이 일을 그리고 난 이클립스 갈릴레오를 사용하고

That is false 

경우에도 선을 출력 할 것이다, 그래서 컴파일 할 때마다/내 프로그램을 실행할 때마다 컴파일러가 프로그램을 업데이트해야합니다. 무슨 일 이니?

+2

if (that == true); :) 제거; 하나 –

답변

9

일반적인 실수입니다. if 문 끝에 ;을 제거하십시오.

BTW 대괄호를 사용하고 IDE의 코드 포맷터를 사용하면 항상 다음을 작성합니다. 당신이이 잘못 배치 ; 또는 {을 더 분명 할 수있는 경우

if (that == true) { 
     System.out.println("That is " + that); 
    } 

이것은 의미한다.

+0

나는 너를 너무 좋아해, 네가 맞아. – user1364363

+0

그 일을 쉽게 끝냈다. ;) –

2

은 다음과 같이 그것을 시도 :

boolean that = false; 
    if (that) 
    { 
     System.out.println("That is " + that); 
    } 

공지 코드에서 if 후 추가 세미콜론? 그래서 이유가 있습니다.

논리적 테스트가 세미콜론으로 닫히고 다음 블록이 항상 실행됩니다.

세미콜론을 제거하면 직감과 일치합니다.

+0

그래. 네가 옳아. – user1364363

3
그것 때문에 세미콜론의

당신은 여기에 있습니다 :

if (that == true); 

가 세미콜론을 제거! 이 조건 (that == true) 확인 후 아무것도하지 않는 코드의 원인 - 기술적으로는 "하늘의 문"이다 - 즉 우리가 지금처럼 루프를 가질 수 있습니다

for (int i = 0; ; i++){ 
     System.out.println("Thanks"); 
    } 

을 그리고 그것은 영원히 갈 것입니다!

+1

나는 너를 너무 사랑해 너 – user1364363

+0

@ user1364363 - :) 고마워, – Coffee

3

;

boolean that = false; 
    if (that == true) 
    { 
     System.out.println("That is " + that); 
    } 

그렇지 않으면 항상 인쇄가 실행됩니다.

+1

너를 사랑해, 너는 그걸 깨닫지 못했다고 믿을 수 없어 .- – user1364363

2
if (that == true); 
       //^The extra colon you dont need 
+0

너 네가 맞아 너를 사랑해. – user1364363

관련 문제