۳
کنترل جریان (Control Flow)
یاد میگیریم چطور به برنامهمون بگیم کی و کجا چه کاری انجام بده.
تصمیمگیری با `if`, `else if` و `else`
مثل بقیه زبانها، با `if` میتونیم بر اساس یه شرط، یه تیکه کد رو اجرا کنیم. یه نکته مهم در Rust اینه که شرط `if` حتماً باید یه مقدار `bool` (true یا false) باشه.
fn main() {
let number = 6;
if number % 4 == 0 {
println!("عدد بر ۴ بخشپذیر است");
} else if number % 3 == 0 {
println!("عدد بر ۳ بخشپذیر است");
} else {
println!("عدد نه بر ۴ و نه بر ۳ بخشپذیر است");
}
// میتونیم از if به عنوان expression هم استفاده کنیم
let condition = true;
let x = if condition { 5 } else { 6 };
println!("The value of x is: {}", x);
}
تکرار با حلقهها
Rust سه نوع حلقه برای تکرار کارها داره:
`loop`: حلقه بینهایت
این حلقه تا ابد ادامه پیدا میکنه، مگر اینکه خودمون با `break` ازش بیایم بیرون.
fn main() {
let mut counter = 0;
let result = loop {
counter += 1;
if counter == 10 {
break counter * 2; // از حلقه خارج شو و این مقدار رو برگردون
}
};
println!("The result is {}", result); // خروجی: 20
}
`while`: تکرار تا وقتی شرط برقراره
fn main() {
let mut number = 3;
while number != 0 {
println!("{}!", number);
number -= 1;
}
println!("LIFTOFF!!!");
}
`for`: بهترین راه برای چرخیدن روی کالکشنها
حلقه `for` امنترین و پراستفادهترین حلقه در Rust هست، چون جلوی خطاهای مربوط به خروج از محدوده آرایه رو میگیره.
fn main() {
let a = [10, 20, 30, 40, 50];
for element in a {
println!("the value is: {}", element);
}
// شمارش معکوس با for
for number in (1..4).rev() {
println!("{}!", number);
}
}