무한 루프에서 실행되는 Java 코드를 작성했습니다.
다음은 코드입니다.
public class TestProgram {
public static void main(String[] args){
Integer i = new Integer(0);
Integer j = new Integer(0);
while(i<=j && j<=i && i!=j){
System.out.println(i);
}
}
}
위의 코드에서 while루프 에서 조건을 확인하는 동안 처음에는 해당 프로그램이 while루프 내부로 들어 가지 않는 것처럼 보입니다 . 그러나 실제로는 무한 루프이며 값을 계속 인쇄합니다.
여기서 무슨 일이 일어나고 있습니까?
i또는을 변경하지 않으면 j언제 루프가 종료 될 것으로 예상합니까?
i<=j와 j<=i그, 당신은 결론을 내릴 수있다 i == j마지막으로 용어 모순되는. 따라서 전체 표현식은 거짓으로 평가되고 while은 입력되지 않습니다. 요점은 여기서 객체 정체성입니다!
i<=j && j<=i && i!=j이 조건이 항상 참으로 평가된다는 것입니다. 그냥 종이 조각을 가지고 : 당신이 그것을 잡을 평가