Lesson 7 of 50 · rust
Control Flow
Duration: 15 minutes
Lesson 7 of 50 · rust
Duration: 15 minutes
if is an expression, not just a statement:\n\nrust\nlet number = 6;\nif number % 2 == 0 {\n println!(\"Even\");\n} else if number % 3 == 0 {\n println!(\"Divisible by 3\");\n} else {\n println!(\"Odd\");\n}\n\n\nIf expressions return values:\n\nrust\nlet condition = true;\nlet value = if condition { 5 } else { 6 };\nprintln!(\"Value: {}\", value); // 5\n\n\nArms must return the same type.\n\n## Loops\n\n### Infinite Loop\n\nrust\nlet mut count = 0;\nloop {\n count += 1;\n println!(\"Count: {}\", count);\n if count == 5 {\n break;\n }\n}\n\n\n### While Loop\n\nrust\nlet mut count = 0;\nwhile count < 5 {\n println!(\"Count: {}\", count);\n count += 1;\n}\n\n\n### For Loop\n\nIterates over ranges and collections:\n\nrust\n// Range loop\nfor i in 0..5 {\n println!(\"i = {}\", i); // 0 to 4\n}\n\n// Inclusive range\nfor i in 0..=5 {\n println!(\"i = {}\", i); // 0 to 5\n}\n\n// Over collections\nlet numbers = [1, 2, 3];\nfor num in numbers {\n println!(\"Number: {}\", num);\n}\n\n\n## Loop Labels\n\nBreak or continue outer loops:\n\nrust\n'outer: loop {\n for i in 0..10 {\n if i == 5 {\n break 'outer; // Break outer loop\n }\n }\n}\n\n\n## Break with Values\n\nLoops can return values:\n\nrust\nlet mut count = 0;\nlet result = loop {\n count += 1;\n if count == 10 {\n break count * 2; // Return 20\n }\n};\nprintln!(\"Result: {}\", result);\n\n\n## Practical Example\n\nrust\nfn main() {\n // Find first even number\n let numbers = [1, 3, 5, 6, 7, 8];\n for num in numbers {\n if num % 2 == 0 {\n println!(\"First even: {}\", num);\n break;\n }\n }\n \n // Validate input\n let mut attempts = 0;\n while attempts < 3 {\n println!(\"Try again\");\n attempts += 1;\n }\n \n // Grade calculator\n let score = 85;\n let grade = if score >= 90 {\n 'A'\n } else if score >= 80 {\n 'B'\n } else if score >= 70 {\n 'C'\n } else {\n 'F'\n };\n println!(\"Grade: {}\", grade);\n}\n