Case statements in Soul switch constructs
command = "start" switch (command) { case "start": println("Starting application") initialize() break case "stop": println("Stopping application") cleanup() break default: println("Unknown command") }
dayOfWeek = "saturday" switch (dayOfWeek) { case "saturday", "sunday": println("It's weekend!") break case "monday", "tuesday", "wednesday", "thursday", "friday": println("It's a weekday") break default: println("Invalid day") }
value = 42 switch (value) { case 0: println("Zero") break case 1, 2, 3: println("Small number") break case "hello": println("String greeting") break case true: println("Boolean true") break default: println("Other value: " + value) }
score = 85 switch (score) { case 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100: println("Grade: A") break case 80, 81, 82, 83, 84, 85, 86, 87, 88, 89: println("Grade: B") break case 70, 71, 72, 73, 74, 75, 76, 77, 78, 79: println("Grade: C") break default: println("Grade: F") }
action = "process" switch (action) { case "process": println("Processing data...") // Complex processing logic data = loadData() if (data != null) { result = transformData(data) saveResult(result) println("Processing complete") } else { println("No data to process") } break case "cleanup": println("Cleaning up...") // Cleanup logic clearCache() closeConnections() println("Cleanup complete") break default: println("No action specified") }
category = "user" operation = "create" switch (category) { case "user": switch (operation) { case "create": println("Creating user") break case "update": println("Updating user") break case "delete": println("Deleting user") break default: println("Unknown user operation") } break case "product": switch (operation) { case "create": println("Creating product") break case "update": println("Updating product") break default: println("Unknown product operation") } break default: println("Unknown category") }
break
level = 2 switch (level) { case 1: println("Level 1 access") // falls through case 2: println("Level 2 access") // falls through case 3: println("Level 3 access") break default: println("No access") } // Output for level 2: "Level 2 access" and "Level 3 access"
userRole = "admin" switch (userRole) { case "admin": grantAdminAccess() setupAdminDashboard() logAdminLogin() break case "user": grantUserAccess() setupUserDashboard() logUserLogin() break case "guest": grantGuestAccess() setupGuestView() break default: denyAccess() logInvalidRole(userRole) }
status = "active" permissions = [] switch (status) { case "active": permissions = ["read", "write", "execute"] isEnabled = true break case "inactive": permissions = ["read"] isEnabled = false break case "suspended": permissions = [] isEnabled = false break default: permissions = [] isEnabled = false }
// Good - clear and organized soul handleHttpStatus(status) { switch (status) { case 200, 201, 202: return handleSuccess() case 400, 401, 403: return handleClientError() case 500, 501, 502, 503: return handleServerError() default: return handleUnknownStatus(status) } }
Was this page helpful?