লুপের মাধ্যমে আমরা একই কাজ বারবার করতে পারি। আগের লেসনে আমরা লুপ শিখেছি। আজ আমরা শিখবো লুপ, যা লুপের মতোই কাজ করে, কিন্তু একটু ভিন্নভাবে। লুপ ব্যবহার করে আমরা নির্দিষ্ট সংখ্যক বার কোনো কাজ করতে পারি।
for লুপ হলো এমন একটি লুপ, যেখানে আমরা লুপের শুরুতে তিনটি জিনিস একসাথে লিখে দেই:
ইনিশিয়ালাইজেশন: লুপের ভ্যারিয়েবলের শুরুতে কী মান দিবো।
কন্ডিশন: লুপ কতক্ষণ চলবে তার শর্ত।
ইনক্রিমেন্ট/ডিক্রিমেন্ট: লুপের ভ্যারিয়েবলের মান কীভাবে পরিবর্তন হবে।
এই তিনটি জিনিস এক লাইনে লিখে আমরা লুপটি চালাতে পারি। চলো একটি উদাহরণ দেখি:
1#include <stdio.h>
2
3int main()
4{
5 int i;
6 for(i = 0; i < 5; i++){
7 printf("I love C\n");
8 }
9 return 0;
10}এই প্রোগ্রামটি লেখাটি ৫ বার প্রিন্ট করবে। চলো বুঝে নেই কীভাবে এটি কাজ করছে।
for লুপের তিনটি অংশ আছে:
ইনিশিয়ালাইজেশন ( ): প্রথম সেমিকোলনের আগে এই অংশটুকু থাকে । আমাদের যেকোনো লুপ চালাতে একটি ভ্যারিয়েবলের প্রয়োজন হয়, for লুপ চালানোর জন্য আমরা যে ভ্যারিয়েবল ব্যবহার করবো তার শুরুর মান কত হবে তা এখানে বলতে হয় । এখানে আমরা নামের একটি ভ্যারিয়েবল তৈরি করেছি এবং তার মান দিয়েছি।
কন্ডিশন ( ): এখানে আমরা একটি শর্ত দিবো যা যতক্ষণ সত্যি হবে ততক্ষণ লুপটি চলবে । যতক্ষণ এর মান এর থেকে কম থাকবে, ততক্ষণ লুপটি চলবে।
ইনক্রিমেন্ট ( ): প্রতিবার লুপ চলার পর ভ্যারিয়েবলের মানটি কত করে বাড়াবো তা এখানে দিতে হবে । যেমন এখানে প্রতিবার লুপ চলার পর এর মান করে বাড়বে।
এখন চলো ধাপে ধাপে দেখি কীভাবে লুপটি কাজ করে:
প্রথমে এর মান দেওয়া হলো।
তারপর কন্ডিশন চেক করা হলো , যা সত্য (কারণ এর মান )।
লুপের ভেতরের কোড ( ) একবার চললো।
তারপর এর মাধ্যমে এর মান বাড়লো (এখন এর মান )।
আবার কন্ডিশন চেক করা হলো ( ), যা এখনও সত্য (কারণ এর মান )।
লুপের ভেতরের কোড আবার চললো।
এভাবে যখন এর মান হয়ে যায়, তখন কন্ডিশনটি মিথ্যা হয়ে যায়, এবং লুপ বন্ধ হয়ে যায়।
for লুপের সবচেয়ে বড় সুবিধা হলো, আমরা লুপের শুরুতে এক লাইনে ইনিশিয়ালাইজেশন, কন্ডিশন, এবং ইনক্রিমেন্ট/ডিক্রিমেন্ট লিখে দিতে পারি। এতে কোডটি আরো সংক্ষিপ্ত এবং সহজে বোঝা যায়।
এখন আমরা for লুপ ব্যবহার করে 1 থেকে 100 পর্যন্ত সংখ্যাগুলোর যোগফল বের করবো। চলো কোডটি দেখি:
1#include <stdio.h>
2
3int main()
4{
5 int i, sum = 0;
6 for(i = 1; i <= 100; i++){
7 sum = sum + i;
8 }
9 printf("Sum is: %d", sum);
10 return 0;
11}এই প্রোগ্রামটি 1 থেকে 100 পর্যন্ত সব সংখ্যার যোগফল প্রিন্ট করবে। এখানে:
এর মান থেকে শুরু হয়েছে।
শর্তটি যতক্ষণ সত্য, ততক্ষণ লুপ চলবে।
প্রতিবার লুপ চলার পর এর মান করে বাড়বে।
ভ্যারিয়েবলে যোগফল জমা হবে।
এখন আমরা for লুপ ব্যবহার করে আরও কিছু উদাহরণ দেখবো।
উদাহরণ ১: 1 থেকে 10 পর্যন্ত সংখ্যাগুলোর বর্গ প্রিন্ট করা
1#include <stdio.h>
2
3int main()
4{
5 int i;
6 for(i = 1; i <= 10; i++){
7 printf("Square of %d is: %d\n", i, i * i);
8 }
9 return 0;
10}এই প্রোগ্রামটি 1 থেকে 10 পর্যন্ত প্রতিটি সংখ্যার বর্গ প্রিন্ট করবে। এখানে:
এর মান থেকে শুরু হয়েছে।
শর্তটি যতক্ষণ সত্য, ততক্ষণ লুপ চলবে।
প্রতিবার লুপ চলার পর এর মান করে বাড়বে।
এর মাধ্যমে এবং (বর্গ) প্রিন্ট হবে।
উদাহরণ ২: ব্যবহারকারীর কাছ থেকে ইনপুট নিয়ে নির্দিষ্ট সংখ্যক বার "Hello" প্রিন্ট করা
1#include <stdio.h>
2
3int main()
4{
5 int n, i;
6 printf("How many times do you want to print Hello? ");
7 scanf("%d", &n);
8
9 for(i = 0; i < n; i++){
10 printf("Hello\n");
11 }
12 return 0;
13}এই প্রোগ্রামটি ব্যবহারকারীকে জিজ্ঞাসা করবে সে কতবার "Hello" প্রিন্ট করতে চায়। তারপর সেই সংখ্যক বার "Hello" প্রিন্ট করবে।
উদাহরণ ৩: 1 থেকে 100 পর্যন্ত বিজোড় সংখ্যাগুলো প্রিন্ট করা
1#include <stdio.h>
2
3int main()
4{
5 int i;
6 for(i = 1; i <= 100; i = i + 2){
7 printf("%d\n", i);
8 }
9 return 0;
10}এই প্রোগ্রামটি 1 থেকে 100 পর্যন্ত সব বিজোড় সংখ্যা প্রিন্ট করবে। এখানে:
এর মান থেকে শুরু হয়েছে।
শর্তটি যতক্ষণ সত্য, ততক্ষণ লুপ চলবে।
প্রতিবার লুপ চলার পর এর মান করে বাড়বে (কারণ বিজোড় সংখ্যাগুলোর মধ্যে পার্থক্য 2)।
এর মাধ্যমে এর মান প্রিন্ট হবে।
Loading...
Loading...
Loading...
স্টেটমেন্ট ব্যবহার করে আমরা লুপ থেকে বের হয়ে যেতে পারি। যখন স্টেটমেন্ট এক্সিকিউট হয়, তখন লুপটি তখনই বন্ধ হয়ে যায়, এমনকি যদি লুপের কন্ডিশন সত্য হয় তবুও।
উদাহরণ ১: Break ব্যবহার করে লুপ থেকে বের হওয়া
1#include <stdio.h>
2
3int main()
4{
5 int i;
6 for(i = 1; i <= 10; i++) {
7 if(i == 5) {
8 break; // লুপ থেকে বের হয়ে যাবে
9 }
10 printf("%d\n", i);
11 }
12 return 0;
13}এই প্রোগ্রামটির আউটপুট হবে:
1
2
3
4এখানে:
এর মান থেকে শুরু হয়েছে।
যখন এর মান হয়, তখন স্টেটমেন্ট এক্সিকিউট হয় এবং লুপ থেকে বের হয়ে যায়।
তাই শুধু 1 থেকে 4 পর্যন্ত প্রিন্ট হয়েছে । যদিও শর্ত অনুযায়ী 10 পর্যন্ত প্রিন্ট হওয়ার কথা !
স্টেটমেন্ট ব্যবহার করে আমরা লুপের বর্তমান ইটারেশন স্কিপ করতে পারি। যখন স্টেটমেন্ট এক্সিকিউট হয়, তখন লুপের বাকি কোড স্কিপ করে পরবর্তী ইটারেশন শুরু হয়।
উদাহরণ ২: Continue ব্যবহার করে বিজোড় সংখ্যা প্রিন্ট করা
1#include <stdio.h>
2
3int main()
4{
5 int i;
6 for(i = 1; i <= 10; i++) {
7 if(i % 2 == 0) {
8 continue; // জোড় সংখ্যা হলে স্কিপ করবে
9 }
10 printf("%d\n", i);
11 }
12 return 0;
13}এই প্রোগ্রামটির আউটপুট হবে:
1
3
5
7
9এখানে:
এর মান থেকে শুরু হয়েছে।
যখন জোড় সংখ্যা হয় ( ), তখন continue স্টেটমেন্ট এক্সিকিউট হয় এবং printf স্টেটমেন্ট স্কিপ হয়।
তাই শুধু বিজোড় সংখ্যাগুলো প্রিন্ট হয়েছে।
এখন আমরা এবং উভয় স্টেটমেন্ট ব্যবহার করে একটি উদাহরণ দেখবো।
উদাহরণ ৩: Break এবং Continue একসাথে ব্যবহার করা
1#include <stdio.h>
2
3int main()
4{
5 int i;
6 for(i = 1; i <= 10; i++) {
7 if(i == 5) {
8 break; // লুপ থেকে বের হয়ে যাবে
9 }
10 if(i % 2 == 0) {
11 continue; // জোড় সংখ্যা হলে স্কিপ করবে
12 }
13 printf("%d\n", i);
14 }
15 return 0;
16}এই প্রোগ্রামটির আউটপুট হবে:
1
3এখানে:
এর মান থেকে শুরু হয়েছে।
যখন জোড় সংখ্যা হয় ( ), তখন স্টেটমেন্ট এক্সিকিউট হয় এবং স্টেটমেন্ট স্কিপ হয়।
যখন এর মান হয়, তখন স্টেটমেন্ট এক্সিকিউট হয় এবং লুপ থেকে বের হয়ে যায়।
তাই শুধু 1 এবং 3 প্রিন্ট হয়েছে।
Loading...
Loading...
