Menu
Coddy logo textTech

Ö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.

challenge icon

Görev

Kolay

Bu 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:

  1. İlk girdiden tehdit seviyesini ayrıştırın
  2. İkinci girdiden aranacak maksimum bölge sayısını ayrıştırın
  3. Bölgeler arasında arama yapmak için etiketli bir break ile iç içe döngüler kullanın
  4. 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
  5. Tehdidi bulduktan sonra (veya tehdit bulunamazsa), aradığınız tehdit seviyesine göre güvenlik uyarılarını görüntülemek için fallthrough içeren bir switch ifadesi 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