Aşağıdaki kod parçasında str değişkeni sonuçta for döngüsü içerisinde initialize oluyor.Neden döngüden sonraki kod hata veriyor.Hadi diyelim ki for içinde olan for içinde kalır.Peki başta str değişkenini null yapsam bile çıktı olarak null değil de for döngüsü içindeki son değerini yazıyor.Yani çelişkili iki durum gibi oldu.Olayın mantığını açıklayabilir misiniz?

public class CreateObject {

        public static void main(String[] args) {

            String str ;
            for (int i = 0; i < 1000; i++) {
                str = new String("" + i);

            }
            System.out.println(str); //Compile Error
        }
    }

soruldu: 22 Mar '15, 21:55

anilemreozcelik's gravatar image

anilemreozcelik
1406812
cevap kabul oranı: 0%


public class CreateObject {
     public static void main(String[] args) {

            String str ="" ;
            for (int i = 0; i < 1000; i++) {
                str = new String("" + i);

            }
            System.out.println(str); //Compile Error
        }
}

kodu yukarıdaki gibi değiştirmelisin. for döngüsünün içerisinde str'nin değerini setlendiği için for döngüsüne girmeme ihtimali var. Gerçi senin yazdığın kodda her halükarda girecek ama girmeyede bilirdi. Eğer girmez ise str değeri null kalır. Bu durumu göz önünde bulundurarak compile error vermektedir.

permanent link

cevaplandı: 23 Mar '15, 02:36

M%C3%BCsl%C3%BCm%20%C3%96ZT%C3%9CRK's gravatar image

Müslüm ÖZTÜRK
10.6k103690
cevap kabul oranı: 28%

değiştirildi: 23 Mar '15, 02:37

For içinde olanın for içinde kalması için for içinde bir değişken tanımlaman gerekir. for içinde önceden tanımladığın değişkeni initialize edebilirsin, ve bu değişiklik o değişkene etki eder.

permanent link

cevaplandı: 23 Mar '15, 18:38

Kaz%C4%B1m's gravatar image

Kazım
1.5k414
cevap kabul oranı: 34%

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×1,077

Soruldu: 22 Mar '15, 21:55

Görüntüleme: 433 kez

Son güncelleme: 23 Mar '15, 18:38

powered by BitNami OSQA