CodeBlanks Logo Icon CodeBlanks

switch expression

switch expression ile ifade öğrenirsin.

switch expression

Bir switch expression, bir değeri desene göre eşleştirir ve bir sonuç üretir. Sözdizimi: String label = switch (n) { 0 => 'sıfır', _ => 'diğer' };. Burada _ tüm değerleri yakalar.

Her kolon bir desen ve bir sonuçtur. => sağındaki ifade sonuç olur. Tüm durumlar kapsandığında derleyici bir hata vermez.

switch expression bir ifade olduğu için bir değişkene atanabilir ya da doğrudan print'e verilebilir.

Desenlerle switch

switch expression'da desen olarak record ve liste de kullanılabilir. Örnek: switch (p) { (0, _) => 'x sıfır', (_, 0) => 'y sıfır', _ => 'değerli' }.

Burada (0, _) deseni ilk alanı 0 olan kayıtları yakalar. _ ise o alanı önemseme anlamına gelir.

Dart desenleri yukarıdan aşağı dener; ilk uyan kolonun sonucunu verir. Sıra önemlidir.

Uygulama Gün adı

main içinde int day = 3; tanımla. Bir switch expression ile 1 => 'Pazartesi', 2 => 'Salı', 3 => 'Çarşamba', _ => 'Bilinmiyor' kollarını kullanarak gün adını print ile yazdır.

Başlangıç kodu

main.dart
void main() {
  int day = 3;
  // switch expression ile gün adını yazdır
}

Örnek çözüm

main.dart
void main() {
  int day = 3;
  print(switch (day) {
    1 => 'Pazartesi',
    2 => 'Salı',
    3 => 'Çarşamba',
    _ => 'Bilinmiyor',
  });
}

Beklenen çıktı

Çarşamba

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 switch expression gövdesi

Soru
var label = switch (n) {
  0 => 'sıfır',
  ____ => 'diğer',
};
Cevap
var label = switch (n) {
  0 => 'sıfır',
  _ => 'diğer',
};

Açıklama: _ tüm kalan değerleri yakalar.

2 switch (n) { 0 => 'a', _ => 'b' } n=5 sonucu?

  • 'a'
  • 'b' Doğru cevap
  • Boş dize
  • Hata

Açıklama: 5, 0'a uymadığından _ kolonu çalışır ve 'b' döner.

3 switch expression ne döndürür?

  • Her zaman null
  • Yalnızca void
  • Bir değer Doğru cevap
  • Bir Future

Açıklama: switch expression bir değer üretir.

Orta seviye bölümündeki tüm dersler