En aquest tema, explorarem com controlar el flux d'execució dels nostres programes en Rust. Aprendrem a utilitzar condicions, bucles i altres estructures de control per crear programes més dinàmics i flexibles.
Continguts
Condicionals
if i else
Els condicionals if i else ens permeten executar diferents blocs de codi basant-nos en condicions booleans.
fn main() {
let x = 5;
if x > 0 {
println!("x és positiu");
} else if x < 0 {
println!("x és negatiu");
} else {
println!("x és zero");
}
}if com a expressió
En Rust, if pot ser utilitzat com a expressió, el que significa que pot retornar un valor.
fn main() {
let condition = true;
let number = if condition { 5 } else { 6 };
println!("El valor de number és: {}", number);
}Bucles
loop
El bucle loop executa un bloc de codi repetidament fins que es trobi una instrucció break.
fn main() {
let mut count = 0;
loop {
count += 1;
println!("Count és: {}", count);
if count == 5 {
break;
}
}
}while
El bucle while executa un bloc de codi mentre una condició sigui certa.
fn main() {
let mut number = 3;
while number != 0 {
println!("{}!", number);
number -= 1;
}
println!("Despegueu!");
}for
El bucle for és utilitzat per iterar sobre una col·lecció d'elements.
fn main() {
let a = [10, 20, 30, 40, 50];
for element in a.iter() {
println!("El valor és: {}", element);
}
}Expressions match
L'expressió match és una manera poderosa de controlar el flux basant-se en el valor d'una variable. És similar a una estructura switch en altres llenguatges.
fn main() {
let number = 6;
match number {
1 => println!("One!"),
2 => println!("Two!"),
3 => println!("Three!"),
4 => println!("Four!"),
5 => println!("Five!"),
_ => println!("Something else!"),
}
}Exercicis Pràctics
Exercici 1: Condicionals
Escriu un programa que demani a l'usuari un número i imprimeixi si el número és positiu, negatiu o zero.
use std::io;
fn main() {
println!("Introdueix un número:");
let mut input = String::new();
io::stdin().read_line(&mut input).expect("Failed to read line");
let number: i32 = input.trim().parse().expect("Please type a number!");
if number > 0 {
println!("El número és positiu");
} else if number < 0 {
println!("El número és negatiu");
} else {
println!("El número és zero");
}
}Exercici 2: Bucles
Escriu un programa que imprimeixi els números de l'1 al 10 utilitzant un bucle for.
Exercici 3: match
Escriu un programa que demani a l'usuari un dia de la setmana (com a número) i imprimeixi el nom del dia utilitzant una expressió match.
use std::io;
fn main() {
println!("Introdueix un número del 1 al 7:");
let mut input = String::new();
io::stdin().read_line(&mut input).expect("Failed to read line");
let day: u32 = input.trim().parse().expect("Please type a number!");
match day {
1 => println!("Dilluns"),
2 => println!("Dimarts"),
3 => println!("Dimecres"),
4 => println!("Dijous"),
5 => println!("Divendres"),
6 => println!("Dissabte"),
7 => println!("Diumenge"),
_ => println!("Número invàlid"),
}
}Conclusió
En aquesta secció, hem après com utilitzar estructures de control de flux en Rust, incloent condicionals, bucles i l'expressió match. Aquestes eines són fonamentals per escriure programes dinàmics i flexibles. A la següent secció, explorarem la propietat i el préstec, conceptes clau en la gestió de memòria en Rust.
