Menu
Coddy logo textTech

`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 durumu yürütür ve ardından otomatik olarak çıkar. Ancak, fallthrough anahtar kelimesi, eşleşip eşleşmediğine bakılmaksızın yürütmeyi bir sonraki duruma devam etmeye zorlayarak bu davranışı değiştirir.

Bir case'in sonunda fallthrough kullandığınızda, Go bir sonraki case'in kodunu koşulunu kontrol etmeden çalıştıracaktır. Bu, bir sonraki case'e geçişi önlemek için break kullanmanız 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ılacaktır. Bu, tek bir eşleşen durum için birbiriyle ilişkili birden fazla eylemi yürütmenize olanak tanır.

challenge icon

Görev

Kolay

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

Bir uyarı seviyesini temsil eden bir dize (string) girdisi alacaksınız. Farklı uyarı seviyelerini işleyen ve daha yüksek öncelikli uyarılar için basamaklı mesajlar görüntülemek üzere fallthrough kullanan bir switch ifadesi oluşturun.

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

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

  • "critical" için: "CRITICAL: System shutdown imminent!" yazdırın ve yüksek öncelikli mesajı da yazdırmak için fall through yapın
  • "high" için: "HIGH: Immediate attention required!" yazdırın ve orta öncelikli mesajı da yazdırmak için fall through yapın
  • "medium" için: "MEDIUM: Please review when possible" yazdırın
  • "low" için: "LOW: Informational only" yazdırın

Kritik uyarıların hem kritik hem de yüksek öncelikli mesajları görüntülemesi ve yüksek uyarıların hem yüksek hem de orta öncelikli mesajları görüntülemesi için fallthrough anahtar kelimesini kullanın.

Kendin dene

package main

import "fmt"

func main() {
    // Girdiyi oku
    var alertLevel string
    fmt.Scanln(&alertLevel)
    
    // TODO: Kodunuzu aşağıya yazın
    // Uyarı sistemi için fallthrough içeren bir switch ifadesi oluşturun
    
}
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