Я написал фрагмент кода 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, что противоречит последним слагаемым. Таким образом, все выражение оценивается как ложное, и время не вводится. Ключевым моментом здесь является идентичность объекта!
i<=j && j<=i && i!=jэто условие всегда истинно. Просто возьмите листок бумаги и оцените, вы его поймаете :)