Sterowanie przepływem
Instrukcje i wyrażenia
Czym różni się instrukcja od wyrażenia?
Kod bloku jako wyrażenie
fn main() {
    
    let y = {
        let x = 3;
        x + 1
    };
 
    println!("The value of y is {}", y);
}Wyrażenie nie mają na końcu średnika (patrz linia 5 w powyższym fragmencie kodu). Jeśli po wyrażeniu dodamy średnik, to zmieniamy je w instrukcję, która nie zwróci wartości.
Wyrażenie warunkowe
- 
Instrukcja if:let i = 1; if i > 0 { println!("Non-negative number") }
- 
Wyrażenie if/elselet i = -1; if i > 0 { println!("Non-negative number"); } else { println!("Negative number"); }
- 
Określ typ wartości zwracanej przez if/elsew poniższym przypadku:let i = -1; let abs_i = if i > 0 { i } else { -i}; // Jaki jest typ abs_i? println!("{}", abs_i)
- 
Określ typ wartości zwracanej przez if/elsew poniższym przypadku:let i = -1; let res = if i >= 0 || i % 2 == 0 { println!("Nonnegative or even") }; println!("{:?}", res)
- 
Określ typ wartości zwracanej przez if/elsew poniższym przypadku:let i = -1; let res = if i >= 0 {i}; println!("{:?}", res)
Wyjaśnij jaka zasada musi być spełniona, aby wyrażenia warunkowe mogło zwracać konkretną wartość?
Pętle
Pętla loop
- 
Podstawowa pętla loopz wyjściem za pomocą instrukcjibreak:let mut x = 1; loop { println!("{}", x); x = x + 1; if x > 10 { break; } }
- 
Pętla loopmoże zwracać wartość:let mut x = 1; let y = loop { println!("{}", x); x = x + 1; if x > 10 { break x; } }; println!("Results of loop is {}.", y);
Pętla while
- 
Pętla warunkowa whilez warunkiem stopu:let mut i = 0; while i < 5 { println!("{}", i); i += 1; }
- 
Iteracja po tablicy z wykorzystaniem pętli whilei indeksowania:let primes: [i32; 8] = [2, 3, 5, 7, 11, 13, 17, 19]; println!("Primes numbers:"); let mut i = 0; while i < primes.len() { println!("{}", primes[i]); i += 1; }
Pętla for
- 
Iteracja po kolekcji z wykorzystaniem pętli forlet primes: [i32; 8] = [2, 3, 5, 7, 11, 13, 17, 19]; println!("Primes numbers:"); for n in primes { println!("{}", n); }
- 
Iteracja po tablicy z wykorzystaniem pętli fori indeksowanialet primes: [i32; 8] = [2, 3, 5, 7, 11, 13, 17, 19]; println!("Primes numbers:"); for n in 0..primes.len() { println!("{}", n); }
- 
Iteracja po zakresie liczb for i in 0..10 { println!("{}", i); }