ماڈیول اسباق (1/2)
کنڈیشنلز اور لوپس
زنگ میں کنٹرول کا بہاؤ دو اہم تعمیرات کے گرد گھومتا ہے: مشروط اظہار یہ فیصلہ کرنے کے لیے کہ کون سا عمل کا راستہ اختیار کرنا ہے، اور ہدایات کو دہرانے کے لیے لوپ کنسٹرکٹس۔
شرائط: if بطور اظہار
زنگ میں، if بیان ایک اظہار ہے، یعنی یہ ایک قدر لوٹاتا ہے۔ ہم if کا استعمال کر سکتے ہیں براہ راست متغیر کو قدر تفویض کرنے کے لیے:
let condition = true;
let number = if condition { 5 } else { 6 }; // if/else as an expressionلوپس اور تکرار
زنگ تین قسم کے مقامی لوپ فراہم کرتا ہے: loop، while، اور for۔
1. loop (لامحدود لوپ)
loop کلیدی لفظ ایک لامحدود لوپ بناتا ہے جو اس وقت تک جاری رہتا ہے جب تک کہ آپ اسے break کا استعمال بند کرنے کے لیے واضح طور پر نہ کہیں:
let mut count = 0;
loop {
count += 1;
if count == 10 {
break; // Exit the loop
}
}مزید برآں، آپ loop سے کسی قدر کو break کے بعد رکھ کر واپس کر سکتے ہیں:
let result = loop {
count += 1;
if count == 10 {
break count * 2; // Returns 20
}
};2. while (مشروط لوپ)
کوڈ کا ایک بلاک اس وقت تک چلاتا ہے جب تک کہ بولین کنڈیشن درست رہے:
let mut number = 3;
while number != 0 {
println!("{}!", number);
number -= 1;
}3. for (مجموعوں اور رینجز پر تکرار)
for لوپ ایک مجموعہ یا نمبروں کی حد میں عناصر پر تکرار کرنے کا سب سے عام اور محفوظ ترین ٹول ہے:
// Iterates over numbers 1 through 3 (excluding 4)
for number in 1..4 {
println!("Valore: {}", number);
}
// Iterates including the right boundary using '='
for number in 1..=3 {
println!("Valore: {}", number); // Prints 1, 2 and 3
}لوپ لیبلز
نیسٹڈ لوپس کے ساتھ ڈیل کرتے وقت، break اور continue اسٹیٹمنٹس بذریعہ ڈیفالٹ اندرونی ترین لوپ پر لاگو ہوتے ہیں۔ زنگ آپ کو بیرونی لوپ کو واضح طور پر ختم کرنے یا جاری رکھنے کے لیے لوپ لیبل (بطور 'label_name: لکھا ہوا) استعمال کرنے کی اجازت دیتا ہے:
let mut count = 0;
'outer: loop {
loop {
if count == 5 {
break 'outer; // Exits the outer loop directly
}
count += 1;
}
}خود ہی آزمائیں۔
7 کی قدر کے ساتھ ایک متغیر نامی نمبر کا اعلان کریں۔ اس کے بعد، اگر نمبر 5 سے بڑا ہے یا 'چھوٹا' ہے تو متغیر پیغام کو قدر 'زیادہ' تفویض کرنے کے لیے if/else اظہار کا استعمال کریں۔ آخر میں، println کا استعمال کرتے ہوئے پیغام پرنٹ کریں!
اشارہ دکھائیں۔
لکھیں ` let message = if number > 5 { 'grater' } else { 'smaller' };` اور اسے `println!` پر بھیج دیں۔
3 کوششوں کے بعد حل دستیاب ہے۔
ایک لوپ کے لیے لکھیں جو 1 سے 5 تک کے نمبروں کو پرنٹ کرتا ہے (یعنی 1، 2، 3، 4، 5) پرنٹ ایل این کا استعمال کرتے ہوئے! ہر تکرار پر.
اشارہ دکھائیں۔
1..=5` میں i کے لیے جامع رینج نحو استعمال کریں اور بلاک کے اندر `println!('{}', i);` چلائیں۔
3 کوششوں کے بعد حل دستیاب ہے۔
ایک لوپ لکھیں جو 0 سے شروع ہونے والے ایک متغیر متغیر کاؤنٹر کو بڑھاتا ہے۔ آخر میں، نتیجہ پرنٹ کریں.
اشارہ دکھائیں۔
` let result = loop { ... };` استعمال کریں۔ لوپ انکریمنٹ `کاؤنٹر` کے اندر اور شرط شامل کریں `اگر کاؤنٹر == 10 { بریک کاؤنٹر * 5; }`
3 کوششوں کے بعد حل دستیاب ہے۔