লু

লুপ মধ্যে C++

12টি অনুশীলনী

লুপ সম্পর্কে

লুপ ব্যবহার করা হয় কোনো লজিক বারবার রান করার জন্য। সবচেয়ে কমন দুটি ধরন হলো while loop (অনির্দিষ্ট লুপিং) আর for loop (নির্দিষ্ট বা গণনাভিত্তিক লুপিং)। এছাড়া for each লুপও আছে, যা পরের কোনো কনসেপ্টে আসবে।

সাধারণ সিনট্যাক্স

for loop-এ থাকে একটি হেডার, আর একটি কোড ব্লক যার ভেতরে দ্বিতীয় বন্ধনী {} দিয়ে মোড়ানো লুপের বডি থাকে। হেডারটি সেমিকোলন ; দিয়ে আলাদা করা ৩টি কম্পোনেন্ট নিয়ে গঠিত: init-statement, শর্ত আর আরেকটি এক্সপ্রেশন। এর প্রত্যেকটিই খালি থাকতে পারে।

for (init-statement; condition; expression) {
  some_statement;
}
  • init কম্পোনেন্ট হলো এমন কিছু কোড, যা লুপ শুরু হওয়ার আগে কেবল একবার রান করে।
  • শর্ত কম্পোনেন্ট হতে হবে এমন একটি এক্সপ্রেশন, যা একটি বুলিয়ান মানে পরিণত হয় এবং লুপ কখন থামা উচিত তা নিয়ন্ত্রণ করে। এই শর্তটি যতক্ষণ ট্রু হয়, ততক্ষণ লুপের ভেতরের কোড রান করবে। এই এক্সপ্রেশনটি ফলস হওয়া মাত্রই লুপের আর কোনো ইটারেশন রান করবে না।
  • এক্সপ্রেশন কম্পোনেন্ট হলো এমন কিছু কোড, যা প্রতিটি ইটারেশনের শেষে রান করে।

while loop যতক্ষণ তার শর্তের পরীক্ষা ট্রু থাকে, ততক্ষণ নিজের বডি রান করে। নিচের কোড স্নিপেটে দেখানো হয়েছে কীভাবে একটি for লুপকে while লুপে রূপান্তর করা যায়।

init-statement;
while(condition) {
    some_statement;
    expression;
}

মাঝপথে: ইনক্রিমেন্ট ও ডিক্রিমেন্ট

লুপ নিয়ে কাজ করার সময় অনেক ক্ষেত্রেই একটি কাউন্টার ভ্যারিয়েবলে ১ যোগ বা ১ বিয়োগ করতে হয়। এটা এতটাই কমন যে এই অপারেশনের জন্য আছে বিশেষ অপারেটর: ++ আর --।

এগুলোর প্রিফিক্স ও পোস্টফিক্স, দুই রূপই আছে। প্রিফিক্স রূপটি স্টেটমেন্টে ব্যবহারের আগেই ভ্যারিয়েবলটি পরিবর্তন করে, আর পোস্টফিক্স রূপটি পরিবর্তন করে ব্যবহারের পরে। বেশিরভাগ সময়েই আপনি সম্ভবত প্রিফিক্স রূপটিই চাইবেন।

int a{3};
int b{--a};
// b is 2, a is now 2
int c{a++};
// c is 2, a is now 3

for লুপ: একটি উদাহরণ

init কম্পোনেন্টটি সাধারণত একটি কাউন্টার ভ্যারিয়েবল তৈরি করে, শর্তটি দেখে লুপটি চালিয়ে যাওয়া হবে না থামানো হবে, আর post কম্পোনেন্টটি সাধারণত প্রতিটি ইটারেশনের শেষে কাউন্টারটি ইনক্রিমেন্ট করে।

int sum{0};
for (int i{1}; i < 10; ++i) {
  sum += i;
}

এই লুপটি 1 থেকে 9 পর্যন্ত সংখ্যাগুলো যোগ করবে (9 সহ)।

break ও continue

লুপের বডির ভেতরে break কিওয়ার্ডটি ব্যবহার করে লুপের এক্সিকিউশন পুরোপুরি থামাতে পারেন:

int sum{2};
while(true) {
    sum *= 2;
    if (sum > 1000)
        break;
}
// sum is now 1024

এর বিপরীতে, continue কিওয়ার্ডটি কেবল বর্তমান ইটারেশনের এক্সিকিউশন থামায় আর পরের ইটারেশনে এগিয়ে যায়:

int equal_sum{0};
for (int i{1}; i < 7; ++i) {
  if  (n%2 == 1) {
    continue;
  }
  equal_sum += i;
}
// equal_sum is now 12

নোট: break আর continue যত কম ব্যবহার করা হয় বা একেবারে এড়িয়ে যাওয়া হয়, লুপের লজিক তত সহজে বোঝা যায়।

GitHub-এর মাধ্যমে সম্পাদনা করুন লিংকটি নতুন একটি উইন্ডো বা ট্যাবে খুলবে

লুপ শিখুন

অনুশীলন লক করা আছে

লুপ অনুশীলন করতে আরও 4টি অনুশীলনী আনলক করুন