Menu
CoddyTech

`fallthrough` ile Switch

Coddy'nin GO Journey'sinin Mantık ve Akış bölümünün bir parçası. Ders 1 / 68.

Go'da switch ifadeleri normalde yalnızca eşleşen case'i çalıştırır ve ardından otomatik olarak çıkar. Ancak fallthrough anahtar sözcüğü, eşleşip eşleşmediğine bakılmaksızın yürütmenin bir sonraki case'e devam etmesini sağlayarak bu davranışı değiştirir.

Bir case'in sonunda fallthrough kullandığında, Go sonraki case'in koşulunu kontrol etmeden onun kodunu çalıştırır. Bu, düşüşü önlemek için break kullanman gereken C gibi dillerden farklıdır.

grade := "B"
switch grade {
case "A":
    fmt.Println("Excellent!")
    fallthrough
case "B":
    fmt.Println("Good job!")
    fallthrough
case "C":
    fmt.Println("Keep trying!")
}

Bu örnekte, grade "B" ise, fallthrough ifadesi nedeniyle hem "Good job!" hem de "Keep trying!" yazdırılır. Bu, eşleşen tek bir durum için birden fazla ilgili eylemi yürütmenizi sağlar.

challenge icon

Görev

Kolay

Bu meydan okumada, öncelikli bir uyarı sistemi oluşturmak için switch deyiminde fallthrough anahtar sözcüğünü kullanma pratiği yapacaksın. Yüksek öncelikli bir uyarı tetiklendiğinde sistem, art arda birden fazla uyarı mesajı görüntülemelidir.

Bir uyarı düzeyini temsil eden bir dize girdi alacaksın. Farklı uyarı düzeylerini işleyen ve daha yüksek öncelikli uyarılar için art arda mesajlar görüntülemek üzere fallthrough kullanan bir switch deyimi oluştur.

Girdi, şu uyarı düzeylerinden biri olacaktır: "critical", "high", "medium" veya "low".

Switch deyimin şu şekilde çalışmalıdır:

  • "critical" için: "CRITICAL: System shutdown imminent!" yazdır ve high durumuna geç (bu durum da sırayla medium durumuna geçer)
  • "high" için: "HIGH: Immediate attention required!" yazdır ve medium öncelikli mesajı da yazdırmak için devam et
  • "medium" için: "MEDIUM: Please review when possible" yazdır
  • "low" için: "LOW: Informational only" yazdır

fallthrough zincirleme çalıştığından, "critical" uyarısı üç satır (CRITICAL, HIGH, MEDIUM), "high" uyarısı iki satır (HIGH, MEDIUM) yazdırır; "medium" ve "low" ise birer satır yazdırır.

Kendin dene

package main

import "fmt"

func main() {
    // Girdiyi oku
    var alertLevel string
    fmt.Scanln(&alertLevel)
    
    // TODO: Kodunu aşağıya yaz
    // Uyarı sistemi için fallthrough kullanan bir switch deyimi oluştur
    
}
quiz iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Mantık ve Akış bölümündeki tüm dersler

Kendi başına pratik yap: Online Go derleyicisi