wiki/content/20200827190443-rust_control_flow.md

97 lines
1.3 KiB
Markdown

---
date: 2020-08-27
id: 0ae97b2d-5a3c-40b5-9ce1-37aacb647c5d
title: Rust control flow
---
# Branching
## If
``` rust
fn main() {
let number = 3;
if number < 5 {
println!("condition was true");
} else {
println!("condition was false");
}
}
```
Because Rust is expressive we can use an \`if\` expression on the right
side of a \`let\` statement:
``` rust
fn main() {
let condition = true;
let number = if condition { 5 } else { 6 };
println!("The value of number is: {}", number);
}
```
# Loops
## Loop
This will loop forever
``` rust
fn main() {
loop {
println!("again!");
}
}
```
Loops can also return values:
``` rust
fn main() {
let mut counter = 0;
let result = loop {
counter += 1;
if counter == 10 {
break counter * 2;
}
};
println!("The result is {}", result);
}
```
## While
Rust also supports while loops:
``` rust
fn main() {
let mut number = 3;
while number != 0 {
println!("{}!", number);
number -= 1;
}
println!("LIFTOFF!!!");
}
```
## For
For loops are supported as well
``` rust
fn main() {
let a = [10, 20, 30, 40, 50];
for element in a.iter() {
println!("the value is: {}", element);
}
}
```