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 combinerez des instructions break étiquetées avec switch et fallthrough pour créer un système de surveillance de la sécurité. Le système recherche des menaces dans plusieurs zones de sécurité et les catégorise avec des niveaux d'alerte en cascade.

Vous recevrez deux entrées :

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

Les données suivantes concernant les zones de sécurité 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 maximal de zones à rechercher à partir de la deuxième entrée
  3. Utiliser des boucles imbriquées avec une instruction break étiquetée pour rechercher dans les zones
  4. Lorsque vous trouvez le niveau de menace cible, afficher "Threat found at zone [zone_number] position [position]" et quitter immédiatement les deux boucles à l'aide de l'instruction break étiquetée
  5. Après avoir trouvé la menace (ou si aucune menace n'est trouvée), utiliser une instruction switch avec fallthrough pour afficher les alertes de sécurité en fonction du niveau de menace recherché

L'instruction switch doit fonctionner comme suit :

  • Pour "critical" : afficher "CRITICAL: Lockdown initiated!" puis continuer avec l'affichage de l'alerte élevée
  • Pour "high" : afficher "HIGH: Security breach detected!" puis continuer avec l'affichage de l'alerte moyenne
  • Pour "medium" : afficher "MEDIUM: Increased monitoring active"
  • Pour "low" : afficher "LOW: Standard security protocols"

Si la menace n'est pas trouvée après la recherche dans le nombre de zones spécifié, afficher "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 au sein 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

Entraînez-vous par vous-même : Compilateur Go en ligne