Zusammenfassung – Fortgeschrittene Schleifensteuerung
Teil des Abschnitts Logik & Ablauf der GO-Journey von Coddy. Lektion 5 von 68.
Aufgabe
EinfachIn dieser Herausforderung kombinierst du markierte break-Anweisungen mit switch und fallthrough, um ein Sicherheitsüberwachungssystem zu erstellen. Das System durchsucht mehrere Sicherheitszonen nach Bedrohungen und kategorisiert sie mit abgestuften Alarmstufen.
Du erhältst zwei Eingaben:
- Eine Zeichenfolge, die die zu suchende Bedrohungsstufe darstellt (z. B.
"high") - Eine Zeichenfolge, die die maximale Anzahl der zu durchsuchenden Zonen darstellt (z. B.
"3")
Die folgenden Daten zu den Sicherheitszonen werden dir bereitgestellt:
zones := [][]string{
{"low", "medium", "low"},
{"medium", "high", "low"},
{"critical", "medium", "high"},
{"low", "critical", "medium"}
}Deine Aufgabe ist:
- Die Bedrohungsstufe aus der ersten Eingabe zu analysieren
- Die maximale Anzahl der zu durchsuchenden Zonen aus der zweiten Eingabe zu analysieren
- Verschachtelte Schleifen mit einem markierten
breakzu verwenden, um die Zonen zu durchsuchen - Wenn du die Ziel-Bedrohungsstufe findest,
"Threat found at zone [zone_number] position [position]"auszugeben und beide Schleifen sofort mithilfe eines markierten break zu verlassen - Nach dem Finden der Bedrohung (oder wenn keine Bedrohung gefunden wurde) eine
switch-Anweisung mitfallthroughzu verwenden, um Sicherheitswarnungen basierend auf der gesuchten Bedrohungsstufe anzuzeigen
Die switch-Anweisung sollte folgendermaßen funktionieren:
- Für
"critical": „CRITICAL: Lockdown initiated!“ ausgeben und anschließend auch die Warnung für „high“ ausgeben - Für
"high": „HIGH: Security breach detected!“ ausgeben und anschließend auch die Warnung für „medium“ ausgeben - Für
"medium": „MEDIUM: Increased monitoring active“ ausgeben - Für
"low": „LOW: Standard security protocols“ ausgeben
Wenn die Bedrohung nach dem Durchsuchen der angegebenen Anzahl von Zonen nicht gefunden wurde, gib "Threat not found in searched zones" aus, bevor du die Sicherheitswarnungen anzeigst. Verwende 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Übe selbstständig: Online-Go-Compiler