`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.
Görev
KolayBu 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
}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