Özet - İleri Seviye Döngü Kontrolü
Coddy'nin GO Journey'sinin Mantık ve Akış bölümünün bir parçası — ders 5 / 68.
Görev
KolayBu meydan okumada, bir güvenlik izleme sistemi oluşturmak için etiketli break ifadelerini switch ve fallthrough ile birleştireceksiniz. Sistem, birden fazla güvenlik bölgesinde tehditleri arar ve bunları kademeli uyarı seviyeleriyle kategorize eder.
İki girdi alacaksınız:
- Aranacak tehdit seviyesini temsil eden bir dize (örneğin,
"high") - Aranacak maksimum bölge sayısını temsil eden bir dize (örneğin,
"3")
Size aşağıdaki güvenlik bölgeleri verisi sağlanmıştır:
zones := [][]string{
{"low", "medium", "low"},
{"medium", "high", "low"},
{"critical", "medium", "high"},
{"low", "critical", "medium"}
}Göreviniz şunları yapmaktır:
- İlk girdiden tehdit seviyesini ayrıştırın
- İkinci girdiden aranacak maksimum bölge sayısını ayrıştırın
- Bölgeler arasında arama yapmak için etiketli bir
breakile iç içe döngüler kullanın - Hedef tehdit seviyesini bulduğunuzda,
"Threat found at zone [zone_number] position [position]"yazdırın ve etiketli break kullanarak her iki döngüden de hemen çıkın - Tehdidi bulduktan sonra (veya tehdit bulunamazsa), aradığınız tehdit seviyesine göre güvenlik uyarılarını görüntülemek için
fallthroughiçeren birswitchifadesi kullanın
Switch ifadesi şu şekilde çalışmalıdır:
"critical"için: "CRITICAL: Lockdown initiated!" yazdırın ve high uyarısını da yazdırmak için fall through yapın"high"için: "HIGH: Security breach detected!" yazdırın ve medium uyarısını da yazdırmak için fall through yapın"medium"için: "MEDIUM: Increased monitoring active" yazdırın"low"için: "LOW: Standard security protocols" yazdırın
Belirtilen sayıda bölgeyi aradıktan sonra tehdit bulunamazsa, güvenlik uyarılarını görüntülemeden önce "Threat not found in searched zones" yazdırın. Bölge numaraları ve bölgeler içindeki konumlar için 0 tabanlı indeksleme kullanın.
Kendin dene
package main
import (
"fmt"
"strconv"
)
func main() {
// Girdiyi oku
var threatLevel string
var maxZonesStr string
fmt.Scanln(&threatLevel)
fmt.Scanln(&maxZonesStr)
// Maksimum bölge sayısını tam sayıya dönüştür
maxZones, _ := strconv.Atoi(maxZonesStr)
// Güvenlik bölgeleri verisi
zones := [][]string{
{"low", "medium", "low"},
{"medium", "high", "low"},
{"critical", "medium", "high"},
{"low", "critical", "medium"},
}
// TODO: Kodunuzu aşağıya yazın
// Tehdidi aramak için etiketli break (labeled break) ile iç içe döngüler kullanın
// Tehdit bulunursa konumunu yazdırın, bulunamazsa "Threat not found in searched zones" yazdırın
// Ardından güvenlik uyarıları için fallthrough özellikli switch kullanın
}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