Sonsuz bir döngüde çalışan bir Java kodu yazdım.
Kod aşağıdadır:
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);
}
}
}
Yukarıdaki kodda whiledöngüdeki koşulu görürken, ilk bakışta o program whiledöngü içine girmeyecekmiş gibi görünüyor . Ama aslında sonsuz bir döngüdür ve değeri yazdırmaya devam eder.
Burada ne oluyor?
iveya jdöngünün ne zaman sona ermesini beklersiniz?
i<=jve j<=io, sen sonuca varabiliriz i == jGeçen dönem çelişmektedir. Böylece tüm ifade yanlış olarak değerlendirilir ve süre girilmez. Buradaki kilit nokta, nesne kimliğidir!
i<=j && j<=i && i!=jbu koşulun her zaman doğru olarak değerlendirilmesidir. Sadece bir kağıt parçası alın ve yakalayacağınızı değerlendirin :)