Menu
Coddy logo textTech

Récapitulatif - Contrôle de boucle avancé

Fait partie de la section Logique & Flux du Journey GO de Coddy — leçon 5 sur 68.

challenge icon

Défi

Facile

Dans ce défi, vous allez combiner des instructions break étiquetées avec switch et fallthrough pour créer un système de surveillance de sécurité. Le système effectue des recherches dans plusieurs zones de sécurité pour trouver des menaces et les classe avec des niveaux d'alerte en cascade.

Vous recevrez deux entrées :

  • Une chaîne de caractères représentant le niveau de menace à rechercher (par exemple, "high")
  • Une chaîne de caractères représentant le nombre maximum de zones à fouiller (par exemple, "3")

Les données des zones de sécurité suivantes vous sont fournies :

zones := [][]string{
    {"low", "medium", "low"},
    {"medium", "high", "low"},
    {"critical", "medium", "high"},
    {"low", "critical", "medium"}
}

Votre tâche consiste à :

  1. Analyser le niveau de menace à partir de la première entrée
  2. Analyser le nombre maximum de zones à fouiller à partir de la deuxième entrée
  3. Utiliser des boucles imbriquées avec un break étiqueté pour effectuer la recherche dans les zones
  4. Lorsque vous trouvez le niveau de menace cible, affichez "Threat found at zone [zone_number] position [position]" et quittez immédiatement les deux boucles en utilisant le break étiqueté
  5. Après avoir trouvé la menace (ou si aucune menace n'est trouvée), utilisez une instruction switch avec fallthrough pour afficher les alertes de sécurité basées sur le niveau de menace que vous recherchiez

L'instruction switch doit fonctionner comme suit :

  • Pour "critical" : Affichez "CRITICAL: Lockdown initiated!" et passez à l'instruction suivante (fall through) pour afficher également l'alerte high
  • Pour "high" : Affichez "HIGH: Security breach detected!" et passez à l'instruction suivante (fall through) pour afficher également l'alerte medium
  • Pour "medium" : Affichez "MEDIUM: Increased monitoring active"
  • Pour "low" : Affichez "LOW: Standard security protocols"

Si la menace n'est pas trouvée après avoir fouillé le nombre de zones spécifié, affichez "Threat not found in searched zones" avant d'afficher les alertes de sécurité. Utilisez une indexation basée sur 0 pour les numéros de zone et les positions à l'intérieur des zones.

Essayez vous-même

package main

import (
    "fmt"
    "strconv"
)

func main() {
    // Lire l'entrée
    var threatLevel string
    var maxZonesStr string
    fmt.Scanln(&threatLevel)
    fmt.Scanln(&maxZonesStr)
    
    // Convertir le nombre maximum de zones en entier
    maxZones, _ := strconv.Atoi(maxZonesStr)
    
    // Données des zones de sécurité
    zones := [][]string{
        {"low", "medium", "low"},
        {"medium", "high", "low"},
        {"critical", "medium", "high"},
        {"low", "critical", "medium"},
    }
    
    // TODO: Écrivez votre code ci-dessous
    // Utilisez des boucles imbriquées avec une instruction break étiquetée pour rechercher la menace
    // Affichez l'emplacement de la menace si elle est trouvée, ou "Threat not found in searched zones" si elle n'est pas trouvée
    // Ensuite, utilisez switch avec fallthrough pour les alertes de sécurité
    
}

Toutes les leçons de Logique & Flux