While döngüsü kullanmayı tercih ederim , ancak boş bir ifade bunu yazmanıza izin verir:
for (;;) { thread.run(); }
Ancak, null bir ifade ile şunu yazalım:
while(true);
{
thread.run();
}
Birincil amacı, peşinizden gelen ve ipliğin neden çalışmadığını merak eden zayıf bakım programcısının zamanını boşa harcamaktır. Bir açıklama bir süre izlemelidir. Tek başına ; bir ifadedir. Yani bu ifade bloğu aslında döngünün bir parçası değil.
Bu, iyi kullanımların olmadığı anlamına gelmez. Sadece nadirdirler. Genellikle şöyle görünürler:
{
;
}
Çünkü bu şekilde bunu yapmak istediğiniz gibi görünüyor (bu bile bazen yeterli değil).
Montajda bu null deyime NOP denir . Python'da buna geçiş denir . Java'da (ve c'nin diğer çocukları) söylediğiniz gibi bir noktalı virgüldür, hatta doğru olduğunu iddia eder;
Birkaç kullanım biliyorum:
Anlamsal .
Boş bir boşluk ile cevap olarak sıfırı düşürmek arasında bir fark vardır. Açıkçası diyor ki, hayır buraya bir şey koymayı unutmadım. Bu hiçbir şeyin bir anlamı yoktur. Açık bir şey değil. Bu alan bilerek boş bırakılmıştır. Bu şekilde N / A'nın derlenmesini sağlıyoruz.
Boş desen
Renkli bir ampulü bir konveyör bandından tekrar tekrar alan, bir sokete vidalayan, çalıştıran, çıkaran ve bir sonrakini alan karmaşık ve pahalı bir ışık sinyalleme makinesi hayal edin. Bu şeyin kemere taktığınız ampullerin rengiyle neyi işaret ettiğini kontrol edebilirsiniz. Harika, şimdi nihayet kusursuz çalışıyor, patronunuz bu sinyallerin zamanlamasını kontrol etmenin bir yolunu yaratmanızı istiyor. Mesajlar arasına boşluk eklemek istiyor. Korku ile birçok parçanın bu sinyallerin zamanlamasını ve onları senkronize etmenin ne kadar acı olduğunu önemsediğini hatırlıyorsunuz. Hafta sonu işte kalmadan zamanlamayı nasıl kontrol edeceksin? Yanmış ampullerden oluşan bir kutuya bakıp tam anlamıyla parlak bir fikir edinirsiniz.
Bazen, hiçbir şeyi bozmadan bir şeyi kapatmak için polimorfizm kullanmak istersiniz.
Hata ayıklama
Bir kesme noktası ayarladığınızda kesme noktası için bir yer olması gerekir. Şimdi bazı hata ayıklayıcılar, onu kapanan kıvırcık küme parantezine ayarlamanıza izin verecektir, ancak eğer dil yapmazlarsa, dilin sizi zorlamasına izin vermesi güzelse, bu yer bir şey yapmasa bile bir tane koymak için bir yer olabilir.
Gerçekten bir java değil, aynı zamanda:
İkili kıpır kıpır
Montajlar NOP talimatı derlenmiş ikili yürütülebilir ile uğraşmaya izin verir. Ancak modern java derleyicileri o kadar uzağa optimize ediyor ki noktalı virgülün sadece kabarmayacağından emin değilim. Ancak eski günlerde, zamanlamayı kontrol etmek veya daha sonra bir kancaya düşmemize izin vermek için yürütülebilir dosyadaki bu boş noktaları da kullandık. NOP olmadan orada gerçek talimatlar olurdu, bu yüzden kanca yapmak istiyorsanız, kanca için yer açmak için bu talimatları başka bir yere kopyalamanız gerekir. Bu, Java'nın sözdiziminin çoğunu aldığı c dilinde de işe yarıyor. Ama bu çengelin Java'da çok fazla olduğunu düşünmüyorum. Bunu yapmak için Unsur Odaklı Programlama kullanıyoruz .