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 çalıştırı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, koşulunu kontrol etmeden bir sonraki case'in kodunu ç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, eğer grade "B" ise, fallthrough ifadesi nedeniyle hem "Good job!" hem de "Keep trying!" yazdıracaktır. Bu, tek bir eşleşen durum için birden fazla ilgili eylemi yürütmenize olanak tanır.

quiz iconKendini test et

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

quiz iconKendini test et

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

quiz iconKendini test et

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

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 kademeli 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 alt seviyeye geçin (fall through)
  • "high" için: "HIGH: Immediate attention required!" yazdırın ve orta öncelikli mesajı da yazdırmak için alt seviyeye geçin (fall through)
  • "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.

Kopya kağıdı

Go switch ifadelerindeki fallthrough anahtar kelimesi, koşulunu kontrol etmeden yürütmeyi bir sonraki duruma (case) devam etmeye zorlar:

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

grade "B" olduğunda, fallthrough ifadesi nedeniyle bu hem "Good job!" hem de "Keep trying!" yazdıracaktır. C gibi dillerin aksine, Go switch ifadeleri fallthrough kullanılmadığı sürece eşleşen bir durumdan sonra otomatik olarak çıkar.

Kendin dene

package main

import "fmt"

func main() {
    // Girdiyi oku
    var alertLevel string
    fmt.Scanln(&alertLevel)
    
    // YAPILACAK: 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