Zusammenfassung – Fortgeschrittene Schleifensteuerung
Teil des Abschnitts Logik & Ablauf der GO-Journey von Coddy — Lektion 5 von 68.
Aufgabe
EinfachIn dieser Herausforderung kombinieren Sie benannte break-Anweisungen mit switch und fallthrough, um ein Sicherheitsüberwachungssystem zu erstellen. Das System durchsucht mehrere Sicherheitszonen nach Bedrohungen und kategorisiert diese mit kaskadierenden Alarmstufen.
Sie erhalten zwei Eingaben:
- Einen String, der die zu suchende Bedrohungsstufe darstellt (z. B.
"high") - Einen String, der die maximale Anzahl der zu durchsuchenden Zonen darstellt (z. B.
"3")
Ihnen werden die folgenden Sicherheitszonendaten zur Verfügung gestellt:
zones := [][]string{
{"low", "medium", "low"},
{"medium", "high", "low"},
{"critical", "medium", "high"},
{"low", "critical", "medium"}
}Ihre Aufgabe ist es:
- Die Bedrohungsstufe aus der ersten Eingabe zu parsen
- Die maximale Anzahl der zu durchsuchenden Zonen aus der zweiten Eingabe zu parsen
- Verschachtelte Schleifen mit einem benannten
breakzu verwenden, um die Zonen zu durchsuchen - Wenn Sie die Ziel-Bedrohungsstufe finden, geben Sie
"Threat found at zone [zone_number] position [position]"aus und beenden Sie sofort beide Schleifen mit dem benannten break - Nachdem die Bedrohung gefunden wurde (oder wenn keine Bedrohung gefunden wurde), verwenden Sie eine
switch-Anweisung mitfallthrough, um Sicherheitsalarme basierend auf der gesuchten Bedrohungsstufe anzuzeigen
Die switch-Anweisung sollte wie folgt funktionieren:
- Für
"critical": Geben Sie "CRITICAL: Lockdown initiated!" aus und nutzen Sie fallthrough, um auch den High-Alarm auszugeben - Für
"high": Geben Sie "HIGH: Security breach detected!" aus und nutzen Sie fallthrough, um auch den Medium-Alarm auszugeben - Für
"medium": Geben Sie "MEDIUM: Increased monitoring active" aus - Für
"low": Geben Sie "LOW: Standard security protocols" aus
Wenn die Bedrohung nach dem Durchsuchen der angegebenen Anzahl von Zonen nicht gefunden wird, geben Sie "Threat not found in searched zones" aus, bevor Sie die Sicherheitsalarme anzeigen. Verwenden Sie eine 0-basierte Indizierung für Zonennummern und Positionen innerhalb der Zonen.
Probier es selbst
package main
import (
"fmt"
"strconv"
)
func main() {
// Eingabe lesen
var threatLevel string
var maxZonesStr string
fmt.Scanln(&threatLevel)
fmt.Scanln(&maxZonesStr)
// Maximale Zonen in Ganzzahl umwandeln
maxZones, _ := strconv.Atoi(maxZonesStr)
// Daten der Sicherheitszonen
zones := [][]string{
{"low", "medium", "low"},
{"medium", "high", "low"},
{"critical", "medium", "high"},
{"low", "critical", "medium"},
}
// TODO: Schreiben Sie Ihren Code unten
// Verwenden Sie verschachtelte Schleifen mit einem benannten Break, um nach der Bedrohung zu suchen
// Geben Sie den Standort der Bedrohung aus, falls gefunden, oder "Threat not found in searched zones", falls nicht gefunden
// Verwenden Sie dann switch mit fallthrough für Sicherheitsalarme
}Alle Lektionen in Logik & Ablauf
1Fortgeschrittener Kontrollfluss
Switch mit `fallthrough`Abbrechen von verschachtelten SchleifenFortsetzen einer bestimmten SchleifeDie `goto`-AnweisungZusammenfassung – Fortgeschrittene Schleifensteuerung4Projekt: Einfache Aufgabenliste
Projekt-SetupEine Aufgabe hinzufügen2Structs und Methoden
Methoden für Structs definierenValue ReceiverPointer ReceiverReceiver auswählenMethoden vs. FunktionenZusammenfassung – Struct-Verhalten5Maps im Detail
Maps von StructsPointer als Map-WertePrüfen auf Nil-MapsMaps vergleichenZusammenfassung – Wortfrequenz-Zähler8Projekt: Einfache Bestandsverwaltung
ProjektübersichtLagerbestand prüfen11Abschlussherausforderungen
Einfache KontaktlisteEinfacher Zahlen-ValidatorSammler für eindeutige Elemente3Interfaces (Die Grundlagen)
Was ist ein Interface?Ein Interface definierenEin Interface implementierenInterface-Typen verwendenLeeres InterfaceType AssertionsType SwitchZusammenfassung – Formen und Verhalten