Я написав фрагмент коду 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це умова завжди оцінюється як істинна. Просто візьміть аркуш паперу і оцініть, що його зловить :)