Kural
Şunu kullanma break kullanma iç döngülerde
Break ifadeleri iç derin iç içe döngüler yap
kontrol akışını zor yönlendirme takip olmazsa belirsiz belgeleme olmadan
Desteklenen diller: 45+Giriş
İç içe geçmiş döngülerdeki break deyimleri, hangi döngünün hangi koşullarda sonlandırılacağı konusunda belirsizliğe yol açar. Bir ara Birden fazla döngünün derinliklerinde yer aldığından, okuyucular hangi döngüyü sonlandırdığını ve dıştaki döngülerin yürütülmeye devam edip etmediğini belirlemek için dikkatlice geriye doğru izlemelidir. Bu zihinsel yük, her iç içe geçme düzeyinde artar ve kodun anlaşılmasını ve bakımını zorlaştırır.
Neden önemli?
Kodun bakım kolaylığı: İç içe geçmiş döngülerdeki break deyimleri, kontrol akışını belirsiz hale getirir. Gelecekte bu kodu bakımını üstlenecek kişiler, hangi döngünün sonlandırıldığını ve dış döngülere ne olacağını zihinsel olarak takip etmek zorundadır. Bu durum, döngü mantığını değiştirirken veya yeni koşullar eklerken hataya yol açabilir.
Hata ayıklama karmaşıklığı: Break komutları içeren iç içe geçmiş döngülerde hata ayıklama yaparken, kesme noktaları belirlemek ve kodda adım adım ilerlemek, karmaşık çıkış yollarını anlamayı gerektirir. İç döngüdeki bir break komutu, dış döngülerdeki önemli temizleme veya doğrulama mantığının yürütülmesini engelleyebilir.
Kod örnekleri
❌ Uygun değil:
function findUser(users, id) {
let found = null;
for (let i = 0; i < users.length; i++) {
if (users[i].id === id) {
found = users[i];
break; // break is okay, but this pattern is verbose
}
}
return found;
}Neden yanlış: Şu ara Bu ifade, geçici bir değişkenin tanımlanmasını gerektirir (bulundu) sonucunu saklamak ve ardından döngüden sonra geri döndürmek. Bu ayrıntılı yapı, doğrudan geri dönüşlere veya dizi yöntemlerine kıyasla gereksiz bir karmaşıklık yaratır ve kodun anlaşılmasını zorlaştırır.
✅ Uygunluk:
function findUser(users, id) {
return users.find(user => user.id === id);
}
OR
function findUser(users, id) {
for (let i = 0; i < users.length; i++) {
if (users[i].id === id) {
return users[i];
}
}
return null;
}Bunun önemi: Seçenek 1'de şunlar kullanılır: .find() Bu, özlü ve amacını açıkça ifade eden bir seçenektir. 2. seçenek ise return kullanıcı bulunduğunda hemen çıkmak, böylece geçici değişkenlere olan ihtiyacı ortadan kaldırmak ve ara ifadeler. Her iki yaklaşım da break kalıbına kıyasla daha net ve bakımı daha kolaydır.
Sonuç
İç içe geçmiş döngü mantığını, aşağıdaki durumlarda fonksiyonlara ayırın: return tüm döngülerden açıkça çıkar. Şu tür dizi yöntemlerini kullanın: find(), some(), ya da every() Mümkün olduğunda iç döngüleri değiştirin. İç içe geçmiş döngülerden kaçınılamıyorsa, çıkış koşullarını açıkça belirtmek için etiketli break komutları veya bayraklar kullanın.

