Flow Control

IF-ELSE

Π’ Rust Π΅ΡΡ‚ΡŒ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΡ‚ΠΎΠΊΠΎΠΌ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ Ρ‡Π΅Ρ€Π΅Π· конструкции IF, ELSE IF, ELSE:

let test_number = 6;

if test_number % 4 == 0 {
println!("Divisible by 4");
} else if test_number % 3 == 0 { // ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° останавливаСтся Π½Π° ΠΏΠ΅Ρ€Π²ΠΎΠΌ 
println!("Divisible by 3");      // Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠΌΠΎΠΌ условии, дальнСйшиС ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ
} else if test_number % 2 == 0 { // ΠΏΡ€ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ.
println!("Divisible by 2");
} else {
println!("Number is not divisible by 4, 3 or 2");
}

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ IF являСтся Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ (expression), поэтому ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ присваиваниС:

let condition = true;

let number = if condition { "aa" } else { "ab" }; // присваиваниС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° IF
println!("Number is {number}");

LOOPS

Π’Ρ€ΠΈ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ†ΠΈΠΊΠ»: Ρ‡Π΅Ρ€Π΅Π· ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ loop, while, for.

LOOP - организация Π²Π΅Ρ‡Π½Ρ‹Ρ… Ρ†ΠΈΠΊΠ»ΠΎΠ². ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΡ LOOP являСтся Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ΠΌ (expression), поэтому ΠΌΠΎΠΆΠ½ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ присваиваниС.

    let mut counter = 0;
    let result = loop {        
        counter += 1;
        if counter == 10 {
            break counter * 2; // Π²Ρ‹Ρ…ΠΎΠ΄ ΠΈΠ· Π²Π΅Ρ‡Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°
        }
    }; // ";" Π½ΡƒΠΆΠ½ΠΎ, Ρ‚.ΠΊ. Π±Ρ‹Π»ΠΎ Π²Ρ‹Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅
    println!("The result is {result}");

Если Π΄Π΅Π»Π°Ρ‚ΡŒ Π²Π»ΠΎΠΆΠ΅Π½Π½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Ρ‹, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΌΠ΅Ρ‡Π°Ρ‚ΡŒ ΠΈΡ… ΠΌΠ΅Ρ‚ΠΊΠΎΠΉ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒ с break Π½Π° Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ.

    let mut count = 0;
    'counting_up: loop {            // ΠΌΠ΅Ρ‚ΠΊΠ° внСшнСго Ρ†ΠΈΠΊΠ»Π°
        println!("count = {count}");
        let mut remaining = 10;

        loop {
            println!("remaining = {remaining}");
            if remaining == 9 {
                break;
            }
            if count == 2 {
                break 'counting_up;  // goto ΠΌΠ΅Ρ‚ΠΊΠ°
            }
            remaining -= 1;
        }

        count += 1;
    }
    println!("End count = {count}");

WHILE - Ρ†ΠΈΠΊΠ» с условиСм. МоТно Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· loop, Π½ΠΎ с while сильно ΠΊΠΎΡ€ΠΎΡ‡Π΅.

    let mut number = 10;
    while number != 0 {
        println!("{number}!");
        number -= 1;
    }
    println!("Π—ΠΠŸΠ£Π‘Πš!");

FOR - Ρ†ΠΈΠΊΠ» ΠΏΠΎ мноТСствам элСмСнтов. Π’ Ρ‚ΠΎΠΌ числС ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π΄Π°Ρ‚ΡŒ подмноТСство чисСл.

for i in (1..10).rev() { // .rev() - Π²Ρ‹Π΄Π°Ρ‡Π° подмноТСства Π² ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ сторону
println!("Value: {i}");
}
println!("Π—ΠΠŸΠ£Π‘Πš!");