`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 çalıştırır ve ardından otomatik olarak çıkar. Ancak fallthrough anahtar sözcüğü, eşleşip eşleşmediğine bakmaksızın yürütmenin sonraki case'e devam etmesini sağlayarak bu davranışı değiştirir.
Bir case'in sonunda fallthrough kullandığınızda Go, koşulunu kontrol etmeden sonraki case'in kodunu çalıştırır. Bu, fallthrough'u ö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 değeri "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 ilişkili işlemi yürütmeni sağlar.
Görev
KolayBu mücadelede, öncelikli bir uyarı sistemi oluşturmak için switch deyiminde fallthrough anahtar sözcüğünü kullanmayı öğreneceksin. Yüksek öncelikli bir uyarı tetiklendiğinde sistem, art arda birden fazla uyarı mesajı görüntülemelidir.
Bir uyarı düzeyini temsil eden bir metin girdisi alacaksın. Farklı uyarı düzeylerini işleyen ve daha yüksek öncelikli uyarılar için zincirleme 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 high durumuna geç (bu durum da sırasıyla medium durumuna geçer)"high"için: "HIGH: Immediate attention required!" yazdır ve medium öncelikli mesajı da yazdırmak üzere devam et"medium"için: "MEDIUM: Please review when possible" yazdır"low"için: "LOW: Informational only" yazdır
fallthrough zincirleme çalıştığından, bir "critical" uyarısı üç satır (CRITICAL, HIGH, MEDIUM), bir "high" uyarısı iki satır (HIGH, MEDIUM) yazdırır; "medium" ve "low" ise birer satır yazdırır.
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 kullanan bir switch ifadesi oluştur
}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ışlarKendi başına pratik yap: Online Go derleyicisi