`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.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Görev
KolayBu 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
}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
1İleri Seviye Kontrol Akışı
`fallthrough` ile Switchİç İçe Döngülerden ÇıkmaBelirli Bir Döngüye Devam Etme`goto` İfadesiÖzet - İleri Seviye Döngü Kontrolü4Proje: Basit Görev Listesi
Proje KurulumuGörev Ekleme2Structlar ve Metotlar
Structlarda Metot TanımlamaValue Receiver'larPointer Receiver'larReceiver SeçimiMetotlar ve FonksiyonlarÖzet - Struct Davranışı5Derinlemesine Map'ler
Struct Map'leriMap Değeri Olarak Pointer'larNil Map KontrolüMap'leri KarşılaştırmaÖzet - Kelime Frekansı Sayacı3Arayüzler (Temeller)
Arayüz Nedir?Bir Arayüz TanımlamaBir Arayüzü UygulamaArayüz Tiplerini KullanmaBoş ArayüzTip OnaylamalarıTip SeçimiÖzet - Şekiller ve Davranışlar