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 case'i yürütü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 zorlayarak bu davranışı değiştirir.

Bir case’in sonunda fallthrough kullandığında Go, koşulunu denetlemeden sonraki case’in kodunu çalıştırır. Bu, geçişi ö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, bir öncelik uyarı sistemi oluşturmak için bir switch deyiminde fallthrough anahtar sözcüğünü kullanma pratiği yapacaksın. Yüksek öncelikli bir uyarı tetiklendiğinde sistem, birden fazla uyarı mesajını sırayla görüntülemelidir.

Bir uyarı düzeyini temsil eden dize girdisi alacaksın. Farklı uyarı düzeylerini ele alan 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 yüksek öncelikli mesajı da yazdırmak için sonraki duruma geç
  • "high" için: "HIGH: Immediate attention required!" yazdır ve orta öncelikli mesajı da yazdırmak için sonraki duruma geç
  • "medium" için: "MEDIUM: Please review when possible" yazdır
  • "low" için: "LOW: Informational only" yazdır

Critical uyarıların hem critical hem de high öncelikli mesajları, high uyarıların ise hem high hem de medium öncelikli mesajları görüntülemesi için fallthrough anahtar sözcüğünü kullan.

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'lu bir switch ifadesi 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