সি while লুপ

লুপ মানে হলো একই কাজ বারবার করানো । দৈনন্দিন জীবনে কম্পিউটার ব্যবহারের অন্যতম একটি কারণ হলো আমাদের জীবনে পুনরাবৃত্তি কমানো, যাতে repititive কাজ গুলো মানুষের পরিবর্তে কম্পিউটারকে দিয়ে করানো যায় । এ কারণে প্রোগ্রামিং এ লুপ এর ধারণা অত্যন্ত গুরুত্বপূর্ণ । 

while লুপ

মনে করো, 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 ।

while 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 লুপ এর ভেতরে আরেকটি বা আরো অনেক 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}
20
Value 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 । 

Logo

PyxLearn

Quick Links

আমাদের মেসেজ পাঠাতে চাও?