Ö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ştireceksin. Sistem, tehditleri bulmak için birden çok güvenlik bölgesini arar ve bunları kademeli uyarı seviyeleriyle kategorilere ayırır.
İki girdi alacaksın:
- Aranacak tehdit seviyesini temsil eden bir dize (ör.
"high") - Aranacak maksimum bölge sayısını temsil eden bir dize (ör.
"3")
Aşağıdaki güvenlik bölgesi verileri sağlanmıştır:
zones := [][]string{
{"low", "medium", "low"},
{"medium", "high", "low"},
{"critical", "medium", "high"},
{"low", "critical", "medium"}
}Görevin:
- Tehdit seviyesini ilk girdiden ayrıştırmak
- Aranacak maksimum bölge sayısını ikinci girdiden ayrıştırmak
- Bölgeleri aramak için etiketli bir
breakiçeren iç içe döngüler kullanmak - Hedef tehdit seviyesini bulduğunda
"Threat found at zone [zone_number] position [position]"ifadesini yazdırmak ve etiketli break kullanarak hemen her iki döngüden de çıkmak - Tehdidi bulduktan sonra (veya tehdit bulunamazsa), aranmakta olan tehdit seviyesine göre güvenlik uyarılarını görüntülemek için
switchiçeren birfallthroughifadesi kullanmak
Switch ifadesi şu şekilde çalışmalıdır:
"critical"için: "CRITICAL: Lockdown initiated!" yazdır ve yüksek uyarıyı da yazdırmak üzere sonraki duruma geç"high"için: "HIGH: Security breach detected!" yazdır ve orta uyarıyı da yazdırmak üzere sonraki duruma geç"medium"için: "MEDIUM: Increased monitoring active" yazdır"low"için: "LOW: Standard security protocols" yazdır
Belirtilen bölge sayısı arandıktan sonra tehdit bulunamazsa, güvenlik uyarılarını görüntülemeden önce "Threat not found in searched zones" ifadesini yazdır. Bölge numaraları ve bölgelerdeki konumlar için 0 tabanlı indeksleme kullan.
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ışlarKendi başına pratik yap: Online Go derleyicisi