Rangkuman, Kontrol Perulangan Lanjutan
Termasuk bagian Logika & Alur dalam perjalanan GO di Coddy. Pelajaran 5 dari 68.
Tantangan
MudahDalam tantangan ini, kamu akan menggabungkan pernyataan break berlabel dengan switch dan fallthrough untuk membuat sistem pemantauan keamanan. Sistem ini mencari ancaman di beberapa zona keamanan dan mengategorikannya dengan tingkat peringatan bertingkat.
Kamu akan menerima dua input:
- String yang menunjukkan tingkat ancaman yang dicari (misalnya,
"high") - String yang menunjukkan jumlah maksimum zona yang dicari (misalnya,
"3")
Kamu diberikan data zona keamanan berikut:
zones := [][]string{
{"low", "medium", "low"},
{"medium", "high", "low"},
{"critical", "medium", "high"},
{"low", "critical", "medium"}
}Tugasmu adalah:
- Parse tingkat ancaman dari input pertama
- Parse jumlah maksimum zona yang dicari dari input kedua
- Gunakan perulangan bersarang dengan
breakberlabel untuk mencari di zona-zona tersebut - Saat menemukan tingkat ancaman yang dicari, cetak
"Threat found at zone [zone_number] position [position]"dan segera keluar dari kedua perulangan menggunakan break berlabel - Setelah menemukan ancaman (atau jika tidak ada ancaman yang ditemukan), gunakan pernyataan
switchdenganfallthroughuntuk menampilkan peringatan keamanan berdasarkan tingkat ancaman yang kamu cari
Pernyataan switch harus bekerja seperti berikut:
- Untuk
"critical": Cetak "CRITICAL: Lockdown initiated!" lalu lanjutkan untuk mencetak peringatan high juga - Untuk
"high": Cetak "HIGH: Security breach detected!" lalu lanjutkan untuk mencetak peringatan medium juga - Untuk
"medium": Cetak "MEDIUM: Increased monitoring active" - Untuk
"low": Cetak "LOW: Standard security protocols"
Jika ancaman tidak ditemukan setelah mencari sejumlah zona yang ditentukan, cetak "Threat not found in searched zones" sebelum menampilkan peringatan keamanan. Gunakan indeks berbasis 0 untuk nomor zona dan posisi di dalam zona.
Coba sendiri
package main
import (
"fmt"
"strconv"
)
func main() {
// Baca input
var threatLevel string
var maxZonesStr string
fmt.Scanln(&threatLevel)
fmt.Scanln(&maxZonesStr)
// Ubah jumlah zona maksimum menjadi bilangan bulat
maxZones, _ := strconv.Atoi(maxZonesStr)
// Data zona keamanan
zones := [][]string{
{"low", "medium", "low"},
{"medium", "high", "low"},
{"critical", "medium", "high"},
{"low", "critical", "medium"},
}
// TODO: Tulis kodemu di bawah ini
// Gunakan perulangan bersarang dengan break berlabel untuk mencari ancaman
// Cetak lokasi ancaman jika ditemukan, atau "Threat not found in searched zones" jika tidak ditemukan
// Lalu gunakan switch dengan fallthrough untuk peringatan keamanan
}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