এই কন্টেন্টটি মূলত Rust প্রোগ্রামিং ল্যাঙ্গুয়েজের Control Flow (কন্ট্রোল ফ্লো) নিয়ে। সহজ কথায়, একটি প্রোগ্রাম কখন কোন কোডটুকু চালাবে এবং কোন কাজ বারবার করবে, তা নিয়ন্ত্রণ করাই হলো কন্ট্রোল ফ্লো। আমরা এই ভিডিও এবং আলোচনার মাধ্যমে শিখব কীভাবে if-else ব্যবহার করতে হয় এবং Rust-এ কত ধরণের লুপ (loop, while, for) আছে।
১. ইফ-এলস এক্সপ্রেশন (If-Else Expressions)
রেফারেন্স: [00:41]
Rust-এ কোনো শর্তের ওপর ভিত্তি করে কোড চালানোর জন্য if ব্যবহার করা হয়। যদি শর্তটি সত্য হয়, তবে কোডটি চলে; না হলে else ব্লকের কোডটি চলে।
বিস্তারিত আলোচনা: অন্যান্য অনেক ল্যাঙ্গুয়েজে (যেমন জাভাস্ক্রিপ্ট) যেকোনো মানকে সত্য বা মিথ্যা ধরা যায়, কিন্তু Rust খুব কড়া। এখানে if-এর ভেতরের শর্তটিকে অবশ্যই Boolean (বুলিয়ান) হতে হবে। অর্থাৎ এর উত্তর শুধু 'হ্যাঁ' (True) বা 'না' (False) হতে পারবে। আপনি সরাসরি কোনো নাম্বার (যেমন if 1) দিয়ে শর্ত চেক করতে পারবেন না।
-
সহজ ব্যাখ্যা: ধরুন, আপনি দোকানে যাবেন যদি বৃষ্টি না হয়। এখানে "বৃষ্টি না হওয়া" হলো শর্ত।
-
কঠিন শব্দ: * Boolean (বুলিয়ান): এমন এক ধরণের ডাটা যার মান শুধু
trueঅথবাfalseহতে পারে।
কোড উদাহরণ:
Rust
fn main() {
let number = 7;
if number < 5 {
println!("কন্ডিশনটি সত্য ছিল");
} else {
println!("কন্ডিশনটি মিথ্যা ছিল");
}
}
ব্যাখ্যা: এখানে number যদি ৫-এর ছোট হয় তবে প্রথম অংশ কাজ করবে, অন্যথায় else অংশটি কাজ করবে। আমাদের কোডে ৭ যেহেতু ৫-এর চেয়ে বড়, তাই এটি "মিথ্যা ছিল" প্রিন্ট করবে।
২. ভ্যারিয়েবলে সরাসরি ইফ ব্যবহার করা
রেফারেন্স: [09:14]
Rust-এ if কোনো স্টেটমেন্ট নয়, এটি একটি Expression (এক্সপ্রেশন)। এর মানে হলো আপনি সরাসরি কোনো ভ্যারিয়েবলের মান নির্ধারণ করতে if ব্যবহার করতে পারেন।
কোড উদাহরণ:
Rust
fn main() {
let condition = true;
let number = if condition { 5 } else { 6 };
println!("নাম্বারটি হলো: {}", number);
}
ব্যাখ্যা: এখানে যদি condition সত্য হয় তবে number এর মান হবে ৫, নাহলে ৬। তবে মনে রাখবেন, if এবং else উভয় ব্লক থেকে একই ধরণের ডাটা (যেমন দুটোই নাম্বার) ফেরত আসতে হবে।
৩. লুপের মাধ্যমে কোড বারবার চালানো (Repetition with Loops)
রেফারেন্স: [11:09]
যখন কোনো কাজ বারবার করার প্রয়োজন হয়, তখন লুপ ব্যবহার করা হয়। Rust-এ প্রধানত ৩ ধরণের লুপ আছে:
ক) Loop (সাধারণ লুপ)
এটি একটি অনন্ত লুপ (Infinite Loop)। এটি চলতেই থাকে যতক্ষণ না আপনি নিজে থেকে break কমান্ড দিয়ে এটি থামান।
-
Break: লুপ থামানোর জন্য।
-
Continue: লুপের বর্তমান ধাপ বাদ দিয়ে পরের ধাপে যাওয়ার জন্য।
খ) While Loop (শর্তসাপেক্ষ লুপ)
যতক্ষণ একটি নির্দিষ্ট শর্ত সত্য থাকে, ততক্ষণ এই লুপ কাজ করে। রেফারেন্স: [22:05]
Rust
fn main() {
let mut number = 3;
while number != 0 {
println!("{}!", number);
number -= 1;
}
println!("কাজ শেষ!");
}
গ) For Loop (কালেকশন লুপ)
এটি সবচেয়ে বেশি ব্যবহৃত এবং নিরাপদ লুপ। বিশেষ করে কোনো লিস্ট বা অ্যাররে (Array)-এর প্রতিটি উপাদানের ওপর কাজ করতে এটি সেরা। রেফারেন্স: [28:08]
কোড উদাহরণ:
Rust
fn main() {
let a = [10, 20, 30, 40, 50];
for element in a {
println!("মানটি হলো: {}", element);
}
}
সহজ ব্যাখ্যা: while লুপে ভুল করে ভুল ইনডেক্স দিলে প্রোগ্রাম ক্রাশ করতে পারে (যাকে Panic বলা হয়), কিন্তু for লুপে সেই ভয় নেই কারণ এটি নিজে থেকেই লিস্টের শেষ পর্যন্ত গিয়ে থেমে যায়।
৪. রেঞ্জ (Range) ব্যবহার করে লুপ
রেফারেন্স: [29:47]
আপনি যদি ১ থেকে ১০ পর্যন্ত সংখ্যা প্রিন্ট করতে চান, তবে (1..11) এভাবে একটি রেঞ্জ তৈরি করে for লুপ চালাতে পারেন।
Rust
fn main() {
for number in (1..4).rev() { // .rev() মানে উল্টো দিক থেকে ৩, ২, ১
println!("{}...", number);
}
println!("উড্ডয়ন শুরু!");
}
আমার বিশ্লেষণ ও চিন্তাভাবনা
কন্টেন্ট ক্রিয়েটর এখানে Rust-এর মেমোরি সেফটি এবং স্ট্রিনজেন্ট টাইপ সিস্টেমের ওপর জোর দিয়েছেন।
বাস্তবতা ও সম্ভাবনা: ১. নিরাপত্তা (Safety): Rust আপনাকে ভুল ইনডেক্স বা ভুল ডাটা টাইপ ব্যবহার করতে দেয় না, যা রান-টাইম এরর কমিয়ে দেয়। ২. পারফরম্যান্স: Rust-এর লুপগুলো খুব দ্রুত কারণ কম্পাইলার কোডটিকে অপ্টিমাইজ করে দেয়। ৩. বিকল্প: যারা জাভাস্ক্রিপ্ট বা পাইথন থেকে আসছেন, তাদের কাছে শুরুতে if-এর কড়া নিয়মগুলো কঠিন মনে হতে পারে। তবে বড় প্রোজেক্টে এই কড়াকড়িই আপনার কোডকে বাগ-মুক্ত রাখবে।
পরামর্শ: আপনি যদি নতুন হন, তবে সরাসরি while লুপ ব্যবহার না করে for লুপ ব্যবহার করার অভ্যাস করুন। এটি আপনার কোডকে আরও স্মার্ট এবং নিরাপদ করবে। ভিডিওর শেষে দেওয়া চ্যালেঞ্জগুলো (যেমন: ফারেনহাইট থেকে সেলসিয়াস কনভার্টার বানানো) নিজে ট্রাই করে দেখুন, এতে হাত পরিষ্কার হবে।
[
Control Flow in Rust | Rust Book
Piyush Garg · 4.7K views
](http://www.youtube.com/watch?v=i4kkNYom9VM)

মন্তব্যসমূহ
একটি মন্তব্য পোস্ট করুন
আপনার সমস্যাটি কমেন্ট করে আমাদের জানান :-d