নেস্টেড লুপ এবং নেস্টেড কন্ডিশনাল স্টেটমেন্ট সি প্রোগ্রামিং ভাষায় লজিক্যাল ও পদ্ধতিগত কাজগুলোকে আরও বেশি বিস্তারিতভাবে এবং নিয়ন্ত্রিতভাবে সম্পন্ন করতে ব্যবহৃত হয়। নেস্টেড লুপের মধ্যে অন্য লুপ এবং নেস্টেড কন্ডিশনালের মধ্যে আরেকটি শর্তযুক্ত স্টেটমেন্ট থাকে।
১. নেস্টেড লুপ
নেস্টেড লুপ হল এক ধরনের লুপ, যেখানে একটি লুপের ভেতরে আরেকটি লুপ থাকে। সাধারণত বহুল ব্যবহৃত নেস্টেড লুপের মধ্যে for লুপ, while লুপ, এবং do-while লুপ অন্তর্ভুক্ত থাকে। নেস্টেড লুপ সাধারণত টু-ডাইমেনশনাল স্ট্রাকচার, যেমন ম্যাট্রিক্স প্রিন্ট করার জন্য ব্যবহৃত হয়।
উদাহরণ:
একটি ৩x৩ ম্যাট্রিক্স আকারে সংখ্যাগুলি প্রিন্ট করা:
#include <stdio.h>
int main() {
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 3; j++) {
printf("%d ", i * j);
}
printf("\n"); // প্রতিটি লাইন শেষে নতুন লাইন প্রিন্ট করা হয়
}
return 0;
}
বিবরণ: এখানে একটি বাইরের for লুপ i দিয়ে এবং একটি অভ্যন্তরীণ for লুপ j দিয়ে চলছে। বাইরের লুপ প্রতিবার চালু হলে, অভ্যন্তরীণ লুপটি সম্পূর্ণভাবে চালানো হয়। এটি i * j এর গুণফল প্রিন্ট করে।
আউটপুট:
1 2 3
2 4 6
3 6 9
২. নেস্টেড কন্ডিশনাল স্টেটমেন্ট
নেস্টেড কন্ডিশনাল স্টেটমেন্টে একটি if, else if, অথবা else স্টেটমেন্টের মধ্যে অন্য একটি শর্তযুক্ত স্টেটমেন্ট ব্যবহার করা হয়। এটি সাধারণত আরও বিস্তারিত শর্ত যাচাই করতে সাহায্য করে।
উদাহরণ:
নেস্টেড if স্টেটমেন্টের সাহায্যে একটি সংখ্যা ধনাত্মক, ঋণাত্মক বা শূন্য নির্ধারণ করা:
#include <stdio.h>
int main() {
int num = -5;
if (num >= 0) {
if (num == 0) {
printf("The number is zero.\n");
} else {
printf("The number is positive.\n");
}
} else {
printf("The number is negative.\n");
}
return 0;
}
বিবরণ: এখানে বাইরের if শর্তটি যাচাই করে সংখ্যা শূন্যের চেয়ে বড় বা সমান কিনা। এরপর যদি সংখ্যাটি শূন্য হয়, তাহলে অভ্যন্তরীণ if শর্তটি প্রিন্ট করে "The number is zero", অন্যথায় "The number is positive" প্রিন্ট করে। যদি বাইরের if শর্তটি মিথ্যা হয় (সংখ্যা ঋণাত্মক), তবে "The number is negative" প্রিন্ট করবে।
আউটপুট:
The number is negative.
৩. নেস্টেড লুপ ও কন্ডিশনাল স্টেটমেন্ট একত্রে
নেস্টেড লুপ ও কন্ডিশনাল স্টেটমেন্ট একসাথে ব্যবহার করে আরও জটিল লজিক গঠন করা যায়। উদাহরণস্বরূপ, ম্যাট্রিক্স আকারে ১ থেকে ৯ পর্যন্ত সংখ্যাগুলি প্রিন্ট করা এবং শুধুমাত্র জোড় সংখ্যাগুলি আলাদা করে দেখানো।
#include <stdio.h>
int main() {
for (int i = 1; i <= 3; i++) {
for (int j = 1; j <= 3; j++) {
int num = i * j;
if (num % 2 == 0) {
printf("Even:%d ", num);
} else {
printf("Odd:%d ", num);
}
}
printf("\n");
}
return 0;
}
আউটপুট:
Odd:1 Even:2 Odd:3
Even:2 Even:4 Even:6
Odd:3 Even:6 Odd:9
এই উদাহরণগুলো দেখায় কীভাবে নেস্টেড লুপ ও কন্ডিশনাল স্টেটমেন্ট ব্যবহার করে প্রোগ্রামে কার্যকরী ফলাফল তৈরি করা যায়।
Read more