মডিউল পাঠ (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 ব্যবহার করে বার্তা মুদ্রণ করুন!
ইঙ্গিত দেখান
বার্তা লিখুন = যদি সংখ্যা > 5 { 'বৃহত্তর' } অন্য { 'ছোট' };` লিখুন এবং এটিকে `ছাপিয়ে দিন!`।
সমাধান 3 প্রচেষ্টার পরে উপলব্ধ
একটি লুপের জন্য লিখুন যা প্রিন্টএলএন ব্যবহার করে 1 থেকে 5 পর্যন্ত সংখ্যাগুলি প্রিন্ট করে (যেমন 1, 2, 3, 4, 5)! প্রতিটি পুনরাবৃত্তি এ
ইঙ্গিত দেখান
1..=5`-এ i এর জন্য অন্তর্ভুক্ত পরিসরের সিনট্যাক্স ব্যবহার করুন এবং ব্লকের ভিতরে `println!('{}', i);` চালান।
সমাধান 3 প্রচেষ্টার পরে উপলব্ধ
একটি লুপ লিখুন যা 0 থেকে শুরু করে একটি পরিবর্তনযোগ্য পরিবর্তনশীল কাউন্টার বৃদ্ধি করে। কাউন্টার 10 এ পৌঁছালে, একটি অপরিবর্তনীয় পরিবর্তনশীল ফলাফলে এই মানটি নির্ধারণ করতে বিরতি বিবৃতি ব্যবহার করে 5 দ্বারা গুণিত লুপ রিটার্নিং কাউন্টার থেকে প্রস্থান করুন। অবশেষে, ফলাফল মুদ্রণ.
ইঙ্গিত দেখান
`চলুন ফলাফল = লুপ { ... };` ব্যবহার করুন। লুপ ইনক্রিমেন্ট `কাউন্টার` এর ভিতরে এবং শর্ত যোগ করুন `যদি কাউন্টার == 10 { ব্রেক কাউন্টার * 5; }`
সমাধান 3 প্রচেষ্টার পরে উপলব্ধ