סיכום – שליטה מתקדמת בלולאות
חלק מהיחידה לוגיקה וזרימת התוכנית במסלול ה-GO של Coddy. שיעור 5 מתוך 68.
אתגר
קלבאתגר הזה, תשלבו הוראות break עם תוויות יחד עם switch ועם fallthrough כדי ליצור מערכת לניטור אבטחה. המערכת מחפשת איומים בכמה אזורי אבטחה ומסווגת אותם באמצעות רמות התראה מדורגות.
תקבלו שתי כניסות:
- מחרוזת המייצגת את רמת האיום שיש לחפש (למשל,
"high") - מחרוזת המייצגת את מספר אזורי האבטחה המרבי שיש לחפש בהם (למשל,
"3")
נתוני אזורי האבטחה הבאים עומדים לרשותכם:
zones := [][]string{
{"low", "medium", "low"},
{"medium", "high", "low"},
{"critical", "medium", "high"},
{"low", "critical", "medium"}
}המשימה שלכם:
- לנתח את רמת האיום מהכניסה הראשונה
- לנתח את מספר אזורי האבטחה המרבי שיש לחפש בהם מהכניסה השנייה
- להשתמש בלולאות מקוננות עם
breakהמסומנת בתווית כדי לחפש באזורי האבטחה - כאשר תמצאו את רמת האיום המבוקשת, להדפיס
"Threat found at zone [zone_number] position [position]"ולצאת מיד משתי הלולאות באמצעותbreakהמסומנת בתווית - לאחר מציאת האיום (או אם לא נמצא איום), להשתמש בהוראת
switchעםfallthroughכדי להציג התראות אבטחה על סמך רמת האיום שחיפשתם
הוראת ה-switch אמורה לפעול כך:
- עבור
"critical": להדפיס "CRITICAL: Lockdown initiated!" ולהמשיך אל ההדפסה של התראת האבטחה ברמה הגבוהה - עבור
"high": להדפיס "HIGH: Security breach detected!" ולהמשיך אל ההדפסה של התראת האבטחה ברמה הבינונית - עבור
"medium": להדפיס "MEDIUM: Increased monitoring active" - עבור
"low": להדפיס "LOW: Standard security protocols"
אם האיום לא נמצא לאחר חיפוש במספר אזורי האבטחה שצוין, להדפיס "Threat not found in searched zones" לפני הצגת התראות האבטחה. להשתמש באינדקסים שמתחילים ב-0 עבור מספרי אזורי האבטחה והמיקומים בתוכם.
נסו בעצמכם
package main
import (
"fmt"
"strconv"
)
func main() {
// קראו את הקלט
var threatLevel string
var maxZonesStr string
fmt.Scanln(&threatLevel)
fmt.Scanln(&maxZonesStr)
// המירו את מספר האזורים המרבי למספר שלם
maxZones, _ := strconv.Atoi(maxZonesStr)
// נתוני אזורי האבטחה
zones := [][]string{
{"low", "medium", "low"},
{"medium", "high", "low"},
{"critical", "medium", "high"},
{"low", "critical", "medium"},
}
// TODO: כתבו את הקוד שלכם להלן
// השתמשו בלולאות מקוננות עם break מתויג כדי לחפש את האיום
// הדפיסו את מיקום האיום אם נמצא, או "Threat not found in searched zones" אם לא נמצא
// לאחר מכן השתמשו ב-switch עם fallthrough להתראות אבטחה
}כל השיעורים ביחידה לוגיקה וזרימת התוכנית
1בקרת זרימה מתקדמת
switch עם `fallthrough`יציאה מלולאות מקוננותהמשך לולאה מסוימתהצהרת `goto`סיכום – שליטה מתקדמת בלולאות4פרויקט: רשימת משימות פשוטה
הגדרת הפרויקטהוספת משימה2מבנים ושיטות
הגדרת שיטות במבניםמקבלי ערךמקבלי מצביעבחירת מקבליםשיטות לעומת פונקציותסיכום — התנהגות המבנים5מפות לעומק
מפות של Structsמצביעים כערכים במפהבדיקה אם מפות הן nilהשוואת מפותסיכום - מונה תדירות מילים8פרויקט: ניהול מלאי פשוט
סקירת הפרויקטבדיקת המלאיתרגלו בעצמכם: קומפיילר Go אונליין