লুপ মানে হলো একই কাজ বারবার করানো । দৈনন্দিন জীবনে কম্পিউটার ব্যবহারের অন্যতম একটি কারণ হলো আমাদের জীবনে পুনরাবৃত্তি কমানো, যাতে repititive কাজ গুলো মানুষের পরিবর্তে কম্পিউটারকে দিয়ে করানো যায় । এ কারণে প্রোগ্রামিং এ লুপ এর ধারণা অত্যন্ত গুরুত্বপূর্ণ ।
মনে করো, I love c কথাটি আমি ৫ বার প্রিন্ট করাতে চাই । কীভাবে করবো?
1#include <stdio.h>
2
3int main()
4{
5 printf("I love C\n");
6 printf("I love C\n");
7 printf("I love C\n");
8 printf("I love C\n");
9 printf("I love C\n");
10 return 0;
11}
12হলো তো? এবার মনে করো আমি এ কথাটি ১০০ বার প্রিন্ট করতে চাই । তাহলে কি আমরা এই লাইনটি ১০০ বার কপি পেস্ট করতাম? নিশ্চয়ই না! কারণ লুপ ব্যবহার করে এটি আরো সহজেই করা যায় !
1#include <stdio.h>
2
3int main()
4{
5 int i = 0;
6 while(i < 5){
7 printf("I love C\n");
8 i++;
9 }
10 return 0;
11}
12এটি হচ্ছে একটা বেসিক while loop ।
দেখো, আমরা এর পরে একটা শর্ত দিয়েছি, । যতক্ষণ পর্যন্ত এই শর্তটি সত্য হবে ততক্ষণ এই এর বডির ভেতরে যে কোড আছে তা চলতে থাকবে । প্রথমে আমরা এর মান দিয়েছি 0 ( এর মাধ্যমে ) । এরপরে লুপ যাচাই করছে শর্তটি সত্য কি না । এটি সত্য হচ্ছে কারণ এর মান শুরুতে 0 । এরপরে একবার চললো এবং এর মান 1 বাড়ানো হলো । ফলে এর মান হলো 1 । এবার লুপ আবারো চেক করছে এটি সত্য নাকি । এবারেও এটি সত্য কারণ এখন এর মান 1 । তাই আবার প্রিন্ট হচ্ছে । এভাবে যখন এর মান 1 করে বাড়তে বাড়তে ৫ হয়ে গেলো, তখন আর শর্তটি সত্য নেই, তাই প্রিন্ট হওয়া বন্ধ হলো এবং লুপটিও বন্ধ হলো ।
আমার কথা বিশ্বাস না হলে প্রতিটি এর সাথে আমরা i ভ্যারিয়েবলের মান প্রিন্ট করে চেক করতে পারি ।
1#include <stdio.h>
2
3int main()
4{
5 int i = 0;
6 while(i < 5){
7 printf("I love C\n");
8 printf("Value of i is: %d\n\n", i);
9 i++;
10 }
11 return 0;
12}
13আউটপুট:
I love C
Value of i is: 0
I love C
Value of i is: 1
I love C
Value of i is: 2
I love C
Value of i is: 3
I love C
Value of i is: 4দেখতে পাচ্ছো, i এর মান যতক্ষণ 5 এর থেকে কম আছে ততক্ষণ লুপটি চলেছে । এখন যদি আমরা প্রিন্ট এর সংখ্যা বাড়াতে চাই, অর্থাৎ যদি ১০০ বার লেখাটি প্রিন্ট করতে চাই, তাহলে শুধু এর জায়গায় করে দিলেই হবে ।
1#include <stdio.h>
2
3int main()
4{
5 int i = 0;
6 while(i < 100){
7 printf("I love C\n");
8 printf("Value of i is: %d\n\n", i);
9 i++;
10 }
11 return 0;
12}
13দেখলে এই কাজটি লুপের মাধ্যমে কত সহজে করা গেলো !
এখন ধরো, যদি আমি প্রোগ্রামটিতে লাইনটি মুছে দেই, তাহলে কী হবে? তাহলে এর মানের কোনো পরিবর্তন হচ্ছে না, সবসময় i এর মান 0 রয়ে যাচ্ছে । ফলে শর্তটি সবসময়ই সত্য থেকে যাবে । তাই এই লুপটি অনন্তকাল চলতে থাকবে এবং একটানা প্রিন্ট হতেই থাকবে যতক্ষণ না একে জোর করে থামানো হচ্ছে । একে বলে infinite loop ।
মনে করো আমাদের একটি প্রোগ্রাম লিখতে হবে, যা 1 থেকে 100 পর্যন্ত সবগুলো সংখ্যা যোগ করবে এবং যোগফল প্রিন্ট করবে । আমরা কিন্তু ব্যবহার করে খুব সহজেই এ প্রোগ্রামটি লিখতে পারি । কীভাবে?
এজন্য আমরা একটি ভ্যারিয়েবলে মান 1 থেকে শুরু করে 1 1 করে 100 পর্যন্ত বাড়াবো, এবং আরেকটি ভ্যারিয়েবলে যোগফল গুলো রাখবো । এই দেখোঃ
1#include <stdio.h>
2
3int main()
4{
5 int i = 1;
6 int sum = 0;
7 while(i <= 100){
8 sum = sum + i;
9 i++;
10 }
11 printf("sum is: %d", sum);
12 return 0;
13}
14দেখো, আমাকে i কে 100 পর্যন্ত নিতে হবে, ৯৯ তে থামা যাবে না, এজন্য আমরা এর জায়গায় ব্যবহার করেছি ।
Loading...
Loading...
উপরের প্র্যাক্টিসগুলো নিশ্চয়ই পেরেছো । আচ্ছা জোড় সংখ্যা গুলো যোগ করার প্রোগ্রামটা কি তোমরা বুঝেছো? এখানে আমরা খুব সাধারণ একটা পদ্ধতি ব্যবহার করেছি । আমরা জানি কোনো জোড় সংখ্যার পরের সংখ্যার পরের সংখ্যা বিজোড়, এবং তার পরের সংখ্যা জোড় । তাহলে আমরা যদি কোনো জোড় সংখ্যার সাথে ২ যোগ করি তাহলে তার পরের জোড় সংখ্যাটা পাবো । এভাবে ২ যোগ করে করে আমরা জোড় সংখ্যাগুলোকে পেতে পারি । তাই i এর মান আমরা ২ করে বাড়িয়েছি ।
একটি while লুপ এর ভেতরে আরেকটি বা আরো অনেক while লুপ দেয়া যায় । যেমন দেখোঃ
1#include <stdio.h>
2
3int main()
4{
5 int i = 0;
6
7
8 while(i < 5){
9 int j = 0;
10 while(j < 5){
11 printf("Value of i is: %d\n", i);
12 printf("Value of j is: %d\n\n", j);
13 j++;
14 }
15 i++;
16 }
17
18 return 0;
19}
20Value of i is: 0
Value of j is: 0
Value of i is: 0
Value of j is: 1
Value of i is: 0
Value of j is: 2
Value of i is: 0
Value of j is: 3
Value of i is: 0
Value of j is: 4
Value of i is: 1
Value of j is: 0
Value of i is: 1
Value of j is: 1
Value of i is: 1
Value of j is: 2
Value of i is: 1
Value of j is: 3
Value of i is: 1
Value of j is: 4
Value of i is: 2
Value of j is: 0
Value of i is: 2
Value of j is: 1
Value of i is: 2
Value of j is: 2
Value of i is: 2
Value of j is: 3
Value of i is: 2
Value of j is: 4
Value of i is: 3
Value of j is: 0
Value of i is: 3
Value of j is: 1
Value of i is: 3
Value of j is: 2
Value of i is: 3
Value of j is: 3
Value of i is: 3
Value of j is: 4
Value of i is: 4
Value of j is: 0
Value of i is: 4
Value of j is: 1
Value of i is: 4
Value of j is: 2
Value of i is: 4
Value of j is: 3
Value of i is: 4
Value of j is: 4 এখানে, i এর প্রতিটি মানের জন্য j এর মান 0 থেকে 5 পর্যন্ত একবার করে ঘুরে আসছে । অর্থাৎ, ভেতরের লুপটি একবার 0 থেকে 5 পর্যন্ত ঘুরে আসার পরে বাইরের লুপটি 1 রাউন্ড আগাচ্ছে । এভাবে একটির ভেতরে আরেকটি লুপ ব্যবহার করাকে বলে Nested Loop ।
