Dart switch case yapısı if benzeri bir mantık ile çalışmaktadır. Sadece int ve String tipinde çalışır. Uzun kod bloklarımızın daha düzgün görünmesini sağlar.
İsteyenler yazımızın içeriğini aşağıdan video olarak izleyebilirler.
void main(){
String? araba= "arabayı çalıştır";
//Sonuç: Bu satırda yazdığımız ifadeye göre işlem yapacaktır.
//araba çalışmıştır diye sonuç üretecektir.
switch (araba){
case "arabayı çalıştır":
print("Araba çalışmıştır");
break;
case "gaza bas":
print("araba hızlanmaktadır");
break;
case "frene bas" :
print("araba yavaşlamaktadır");
break;
case "kontağı kapat":
print("araba çalışmayı durdurmuştur, el frenini çekmeyi unutma");
break;
default:
print("doğru değer giriniz");
}
}
void main(){
//EV OTOMASYONU
//1-ALARMI AÇ
//2-ALARMI KAPAT
//3-IŞIKLARI AÇ
//4-IŞIKLARI KAPAT
int gelenSayi= 1;
switch(gelenSayi){
case 1 :
print("alarm devreye alındı");
break;
case 2 :
print("alarm devredışı");
break;
case 3 :
print("ışıklar açıldı");
break;
case 4 :
print("ışıklar kapandı");
break;
default:
print("doğru değer giriniz");
}
}
void main(){
//NOT SİSTEMİ
String not= "Cs";
switch(not){
case "AA" :
print("NOTUNUZ 90 - 100 ARASINDADIR");
break;
case "BA" :
print("NOTUNUZ 80 - 89 ARASINDADIR");
break;
case "BB" :
print("NOTUNUZ 70 - 79 ARASINDADIR");
break;
case "CB" :
print("NOTUNUZ 60 - 69 ARASINDADIR");
break;
case "CC" :
print("NOTUNUZ 50 - 59 ARASINDADIR");
break;
case "FF" :
print("NOTUNUZ 50 ALTIDIR");
break;
default :
print("DOĞRU DEĞER GİRİNİZ");
}
}
Dart dilinde diğer dillerin aksine switch-case yapısında aynı anda birden fazla kullanımına izin verilmemesi bence üzücü olmuş. Kod tekrarı meselesine giriyor biraz?
Eline sağlık dersler için 🙂 .
Teşekkür ederim. Sanırım sürekli case, break ifadelerini kullandığımız için kod tekrarı demek istedin. switch case yapısı bu şekilde ancak normal şartlarda buna benzer bir kullanımda ben bir fonksiyon oluşturup kullanıcıdan aldığım bilgilere göre if yapısını da kullanarak işlem yapardım.
Bakış açısı için teşekkür ederim 🙂
Java, C# gibi dillerde her case bitiminde break ifadesi yazma zorunluluğu yokken dart’ın bunu zorunlu tutması hem iyi hem de kötü olmuş gibi geldi :’)
Basit bir örnek vermek gerekirse
int ay = 12;
switch(ay){
case 12:
case 1:
case 2:
print(“Kis”);
break;
case 3:
case 4:
case 5:
print(“Bahar”);
break;
case 6:
case 7:
case 8:
print(“Yaz”);
break;
case 9:
case 10:
case 11:
print(“Sonbahar”);
break;
}
Bu örnek Java ve C# gibilerde Kis döndürüken Dart’da ise her case’e break ifadesi kullanmadığım için hata veriyor. Burda kod tekrarı demek istediğim yer print ve break satırları 12. ve 1. case’lerede (Örnekten yola çıkarak) yazmak.
Evet bu kullanım güzel bir örnek olmuş, teşekkür ederim, dart dili henüz gelişme aşamasında olan bir dil gelişimi halen devam ediyor, tabi her dilin kendine özgü güzellikleri ve eksileri olabiliyor…
direk yakalıyor iften if else .. uğraştrıcı
bu daha kullanışlı , beğendim 🙂
Teşekkürler