Skip to content
Snippets Groups Projects
Unverified Commit 3d1aa2f9 authored by Vanille-N's avatar Vanille-N
Browse files

relecture: boucles

parent e033e6df
No related branches found
No related tags found
No related merge requests found
......@@ -446,12 +446,13 @@ fn somme(vect: &Vec<usize>) -> usize {
\section{Conditions et boucles}
\begin{lstlisting}[style=Rust, language=Rust]
fn main() {
let age: u32 = 15;
if age < 18 {
println!("Tu es mineur(e)");
} else {
......@@ -462,16 +463,33 @@ fn main() {
\begin{lstlisting}[style=Rust, language=Rust]
fn main() {
let array: [i32; 5] = [1, 2, 3, 4, 5];
let array: [char; 4] = ['a', 'b', 'c', 'd'];
// On va itérer sur chacun des éléments du tableau
for elem in array.iter() {
println!("{}", elem);
} // "1" "2" "3" "4" "5"
for elem in array.iter() { // équivalent: for elem in \&array
print!("{} ", elem);
} // affiche "a b c d "
for (index, elem) in array.iter().enumerate() {
print!("{}:{} ", index, elem);
} // affiche "0:a 1:b 2:c 3:d "
for index in 0..array.len() {
print!("{}:{} ", index, array[elem]);
} // idem
for elem in array.into_iter() { // équivalent: for elem in array
print!("{} ", elem);
} // cette boucle semble très similaire à la première,
// mais il y a deux différences :
// - elem est de type char au lieu de \&char
// - array n'est plus utilisable ensuite
// On va modifier (de manière impérative) chaque élément du tableau
let mut vector: Vec<i32> = vec![10, 20, 30];
for elem in &mut vector {
for elem in vector.iter_mut() { // équivalent: for elem in \&mut vector
*elem += 50;
}
......@@ -504,6 +522,7 @@ fn main() {
}
\end{lstlisting}
Il se trouve que les boucles et tests sont des expressions: voir \Cref{expressionsEverywhere}.
\section{Structures, Enums et Pattern matching}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment