`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.
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 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
}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