Skip to Content
RozdziałyPodstawowe konstrukcje językaSterowanie przepływem

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

  1. Instrukcja if:

    let i = 1; if i > 0 { println!("Non-negative number") }
  2. Wyrażenie if/else

    let i = -1; if i > 0 { println!("Non-negative number"); } else { println!("Negative number"); }
  3. Określ typ wartości zwracanej przez if/else w poniższym przypadku:

    let i = -1; let abs_i = if i > 0 { i } else { -i}; // Jaki jest typ abs_i? println!("{}", abs_i)
  4. Określ typ wartości zwracanej przez if/else w poniższym przypadku:

    let i = -1; let res = if i >= 0 || i % 2 == 0 { println!("Nonnegative or even") }; println!("{:?}", res)
  5. Określ typ wartości zwracanej przez if/else w 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

  1. Podstawowa pętla loop z wyjściem za pomocą instrukcji break:

    let mut x = 1; loop { println!("{}", x); x = x + 1; if x > 10 { break; } }
  2. Pętla loop moż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

  1. Pętla warunkowa while z warunkiem stopu:

    let mut i = 0; while i < 5 { println!("{}", i); i += 1; }
  2. Iteracja po tablicy z wykorzystaniem pętli while i 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

  1. Iteracja po kolekcji z wykorzystaniem pętli for

    let primes: [i32; 8] = [2, 3, 5, 7, 11, 13, 17, 19]; println!("Primes numbers:"); for n in primes { println!("{}", n); }
  2. Iteracja po tablicy z wykorzystaniem pętli for i indeksowania

    let primes: [i32; 8] = [2, 3, 5, 7, 11, 13, 17, 19]; println!("Primes numbers:"); for n in 0..primes.len() { println!("{}", n); }
  3. Iteracja po zakresie liczb

    for i in 0..10 { println!("{}", i); }
Last updated on