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

  1. Tehdit seviyesini ilk girdiden ayrıştırmak
  2. Aranacak maksimum bölge sayısını ikinci girdiden ayrıştırmak
  3. Bölgeleri aramak için etiketli bir break içeren iç içe döngüler kullanmak
  4. 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
  5. Tehdidi bulduktan sonra (veya tehdit bulunamazsa), aranmakta olan tehdit seviyesine göre güvenlik uyarılarını görüntülemek için switch içeren bir fallthrough ifadesi 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

Kendi başına pratik yap: Online Go derleyicisi