SORU
10 Ocak 2012, Salı


İçinde değişkenleri bildirmek veya bir döngü dışında

Bu yüzden:

    String str;
    while(condition){
        str = calculateStr();
        .....
    }

daha iyi Bu?

    while(condition){
        String str = calculateStr();
        .....
    }

Döngü dışında bir değişken bildirmek gerekli midir?

CEVAP
10 Ocak 2012, Salı


Yerel değişkenler kapsamında her zaman mümkün olan en küçük olmalıdır.

Örnek str olduğunu tahmin ediyorumdeğilwhile döngü içinde ilan derleme değil bu yana bir seçeneği olmaz çünkü while döngü kullanılan dışında, başka soru sormazdın.

str olduğu için yanideğildöngünün dışında kullanılan, str mümkün olan en küçük alaniçindesırasında döngü.

Yani, cevabımüzerine basa basastr kesinlikle bu süre içinde döngü ilan edilmesi gerekirdi. Eğer yok, eleştiri yok, ama yok.

Tek dava bu kural olabilir uyulmazsa nedense bu hayati önemi olan her saat döngüsü olmalı sıkılmış dışarı kodunu durumda, belki dikkate başlatmasını bir şey, bir dış kapsam ve yeniden yerine yeniden başlatmasını üzerinde her döngü bir iç kapsam. Ancak, bu geçerli değildir örnek nedeniyle değişmezliğini tanıdı dizelerinde java: yeni bir örneği str daima yanında olacağım oluşturulan başlangıç, döngü ve yapılması gerekiyor atmış sonunda, yani yok imkanı için optimize.

DÜZENLEME:(bu bir yorum aşağıda yazdığım bir şey, ama cevap bir parçası yapmaya değer olduğunu düşünüyorum.)

Herhangi bir durumda, doğru olanı şeyler yazmak tüm kod düzgün, kurmak bir performans gereksinimi için Ürün, ölçü nihai ürüne karşı bu gereksinim, gitmezse tatmin, o zaman git optimize şeyler. Ve genelde ne biter neler olduğunu öğrenin yollar sağlamak için bazı güzel ve resmi algoritmik optimizasyon sadece birkaç basamak yapmak programımız karşılamak performans gereksinimlerini yerine gidin her yerinden tüm kod tabanı ve çimdik ve hack işleri için sıkmak için saat döngüsü burada ve orada.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Anthony Cumia

    Anthony Cumi

    5 EYLÜL 2006
  • Marissah Simonini

    Marissah Sim

    25 HAZİRAN 2013
  • Ty Moss

    Ty Moss

    20 Kasım 2007