switch dengan `fallthrough`
Termasuk bagian Logika & Alur dalam perjalanan GO di Coddy. Pelajaran 1 dari 68.
Di Go, pernyataan switch biasanya hanya menjalankan case yang cocok, lalu otomatis keluar. Namun, kata kunci fallthrough mengubah perilaku ini dengan memaksa eksekusi berlanjut ke case berikutnya, terlepas dari apakah case tersebut cocok.
Saat kamu menggunakan fallthrough di akhir sebuah case, Go akan menjalankan kode case berikutnya tanpa memeriksa kondisinya. Ini berbeda dari bahasa seperti C, yang mengharuskan kamu menggunakan break agar eksekusi tidak berlanjut ke case berikutnya.
grade := "B"
switch grade {
case "A":
fmt.Println("Excellent!")
fallthrough
case "B":
fmt.Println("Good job!")
fallthrough
case "C":
fmt.Println("Keep trying!")
}Dalam contoh ini, jika grade bernilai "B", program akan mencetak "Good job!" dan "Keep trying!" karena adanya pernyataan fallthrough. Ini memungkinkan kamu menjalankan beberapa tindakan terkait untuk satu kasus yang cocok.
Tantangan
MudahDalam tantangan ini, kamu akan berlatih menggunakan kata kunci fallthrough dalam pernyataan switch untuk membuat sistem peringatan berprioritas. Saat peringatan berprioritas tinggi terpicu, sistem harus menampilkan beberapa pesan peringatan secara berurutan.
Kamu akan menerima input string yang mewakili tingkat peringatan. Buat pernyataan switch yang menangani berbagai tingkat peringatan dan menggunakan fallthrough untuk menampilkan pesan berantai untuk peringatan berprioritas lebih tinggi.
Input berupa salah satu tingkat peringatan berikut: "critical", "high", "medium", atau "low".
Pernyataan switch-mu harus bekerja sebagai berikut:
- Untuk
"critical": Cetak "CRITICAL: System shutdown imminent!" lalu lanjutkan ke case high (yang selanjutnya berlanjut ke medium) - Untuk
"high": Cetak "HIGH: Immediate attention required!" lalu lanjutkan untuk mencetak pesan prioritas medium juga - Untuk
"medium": Cetak "MEDIUM: Please review when possible" - Untuk
"low": Cetak "LOW: Informational only"
Karena fallthrough membentuk rantai, peringatan "critical" mencetak tiga baris (CRITICAL, HIGH, MEDIUM), peringatan "high" mencetak dua baris (HIGH, MEDIUM), dan "medium" serta "low" masing-masing mencetak satu baris.
Coba sendiri
package main
import "fmt"
func main() {
// Baca input
var alertLevel string
fmt.Scanln(&alertLevel)
// TODO: Tulis kodemu di bawah ini
// Buat pernyataan switch dengan fallthrough untuk sistem peringatan
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika & Alur
1Alur Kontrol Lanjutan
switch dengan `fallthrough`Keluar dari Perulangan BersarangMelanjutkan Perulangan TertentuPernyataan `goto`Rangkuman, Kontrol Perulangan Lanjutan4Proyek: Daftar Tugas Sederhana
Menyiapkan ProyekMenambahkan Tugas2Struct dan Method
Mendefinisikan Method pada StructPenerima NilaiPenerima PointerMemilih PenerimaMethod vs FungsiRekap: Perilaku Struct5Map secara Mendalam
Map Berisi StructPointer sebagai Nilai MapMenguji Map NilMembandingkan MapRingkasan: Penghitung Frekuensi Kata8Proyek: Inventaris Sederhana
Gambaran Umum ProyekMemeriksa Stok3Interface (Dasar)
Apa Itu Interface?Mendefinisikan InterfaceMengimplementasikan InterfaceMenggunakan Tipe InterfaceInterface KosongType AssertionType SwitchRingkasan: Bentuk dan PerilakuLatihan sendiri: Compiler Go online