#include <stdio.h>

int main()
{
    int n = 1;
    while(1) {
        if(n==998) {
            continue;
        }

        printf("%d\n",n);
        n++;
        if(n>1000) {
            break;
        }
    }

    return 0;
}

এই কোডে আমি চাচ্ছি ১ থেকে প্রিন্ট করে যখন ৯৮৮ এ আসবে তখন continue করবে। আর ১০০১ আসলে লুপ break করবে। কিন্তু এখানে ৯৯৭ প্রিন্ট হয়ে আর আর কাজ করে না। কোডে এখানে কোথায় ভুল হয়েছে? কি করলে ঠিক হবে?

asked 12 Feb, 13:02

pollob1563's gravatar image

pollob1563
736

edited 12 Feb, 15:48

Mosharraf%20Hosain's gravatar image

Mosharraf Hosain ♦
23618


লুপ চলতে চলতে যখন n এর মান 997 হয়, লুপের মধ্যের প্রথম if অংশে চেক করায় হয় যে n, 998 এর সমান কিনা? না, 998 এর সমান না। প্রোগ্রাম কন্ট্রোল নিচে নামে। প্রিন্ট স্টেটমেন্ট কাজ করে 997 প্রিন্ট করে।

এরপর n এর মান 1 বাড়ানো হয় মানে 998 হয়। পরের if অংশে চেক করা হয় যে n এর মান 1000 এর বড় কিনা। না, বড় না।

এরপর প্রোগ্রাম কন্ট্রোল while স্টেটমেন্টে যায় এরপর লুপের মানে while এর কন্ডিশন অংশ চেক করে। কন্ডিশন সত্য হওয়ায় প্রোগ্রাম কন্ট্রোল লুপের বডিতে ঢোকে।

আবার if অংশে চেক করায় হয় যে n, 998 এর সমান কিনা? হ্যা, সমান। continue স্টেটমেন্ট কাজ করবে। এই স্টেটমেন্ট টা কাজ করলে প্রোগ্রাম কন্ট্রোল আবার while স্টেটমেন্টে চলে আসবে মানে while লুপের শুরুতে চলে আসবে। while এর কন্ডিশন সত্য হওয়ায় আবার লুপের বডিতে প্রোগ্রাম কন্ট্রোল ঢুকবে। আবার লুপের প্রথম if অংশ চেক করা হবে যে n, 998 এর সমান কিনা। হ্যা, সমান। continue স্টেটমেন্ট আবার কাজ করবে। continue স্টেটমেন্ট কাজ করলে প্রোগ্রাম কন্ট্রোল আবার লুপের শুরুতে চলে আসবে।

এইভাবেই আপনার লুপ কাজ করতে থাকবে। 997 এর পর আর প্রিন্ট হবে না। লুপটা ইনফিনিটি লুপ হয়ে যাবে।

সমস্যাটা ধরতে পারছেন এইবার?

permanent link

answered 12 Feb, 13:45

_Shaon_'s gravatar image

_Shaon_
756216

ভাইয়া আমি কিছুই বুঝি নাই । কোডটা লিখে দেন দেখি বুঝি কি না?

(13 Feb, 13:08) pollob1563
1

https://ideone.com/2yeYJ6 লিঙ্ক চেক করেন

(15 Feb, 10:11) _Shaon_

ওহ এখন বুঝেছি । কারণ লুপে continue হলে বার বার skip করতে থাকে আর লুপে এর মান বাড়ে না যার ফলে লুপটা চলতে থাকে আর মান বাড়ানোর source পায় নাই । অনেক অনেক ধন্যবাদ।

(15 Feb, 17:05) pollob1563
Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *italic* or _italic_
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported

Question tags:

×17
×3
×1

question asked: 12 Feb, 13:02

question was seen: 234 times

last updated: 16 Feb, 03:42