fn main() { //if else statements let mut num1 = 10; let mut num2 = 5; if num1 < num2 { println!("{} is smaller then {}", num1, num2); } else { println!("{} is bigger then {}", num1, num2); } //if expressions //always need a else case and must be of the same type, ternary operations do not exist but this results the same num1 = if num1 != num2 { 5 } else { 15 }; println!("num 1: {}", num1); //match //same as switch case match num1 { 1 => println!("Number is 1"), 2 => println!("Number is 2"), 3 => println!("Number is 3"), 6 => println!("Number is 6"), 7 => println!("Number is 7"), _ => println!("Number is none of the other statements"), } // _ is a default and altough syntax specifies => it should be an exact match //combining match results match num2 { 1 | 2 | 3 | 4 => println!("Number is in range of 1 to 4"), 5 | 7 => println!("Number is 5 or 7"), _ => println!("Number is none of the above"), } //match expression println!("Old number for num2: {}",num2); let num2 = match num2 { 1 | 2 | 3 | 4 => 1234, 5 | 7 => 57, _ => -1, }; println!("New number for num2: {}",num2); //loops let mut loop_cycles = 1; loop { println!("this is loop: {}",loop_cycles); if loop_cycles == 3 {break}; loop_cycles += 1 } //loop expression loop_cycles = 1; let result = loop { println!("cycle: {}",loop_cycles); if 7 % loop_cycles == 2 {break loop_cycles}; loop_cycles += 1 }; println!("it took {} cycles to resolve the expression",result) }