1. breakবিবৃতি

আগের পাঠ থেকে একটি উদাহরণ দেখা যাক:

কোড ব্যাখ্যা
Scanner console = new Scanner(System.in);
boolean isExit = false;
while (!isExit)
{
   String s = console.nextLine();
   isExit = s.equals("exit");
}
আপনি প্রবেশ না করা পর্যন্ত প্রোগ্রামটি কীবোর্ড থেকে একটি লাইন পড়বে "exit"

exitশব্দটি প্রবেশ না করা পর্যন্ত প্রোগ্রামটি কনসোল থেকে লাইনগুলি পড়ে । আপনি যদি এই শব্দটি প্রবেশ করেন, তাহলে isExit ভেরিয়েবলটি হয়ে যায় true, লুপের অবস্থা হবে এবং লুপটি শেষ হয়ে যাবে।"!isExitfalse

জাভা একটি বিশেষ breakবিবৃতি আছে যা আপনাকে এই ধরনের যুক্তি সরল করতে দেয়। যদি breakএকটি লুপের ভিতরে একটি বিবৃতি কার্যকর করা হয়, তাহলে লুপটি অবিলম্বে শেষ হয়ে যায়। প্রোগ্রামটি লুপ অনুসরণকারী বিবৃতিটি কার্যকর করা শুরু করবে। বিবৃতিটি খুব সংক্ষিপ্ত:

break;

breakআমরা যে উদাহরণটি আলোচনা করেছি তা পুনরায় লিখতে আপনি কীভাবে বিবৃতিটি ব্যবহার করতে পারেন তা এখানে রয়েছে :

কোড ব্যাখ্যা
Scanner console = new Scanner(System.in);
while (true)
{
   String s = console.nextLine();
   if (s.equals("exit"))
     break;
}
আপনি প্রবেশ না করা পর্যন্ত প্রোগ্রামটি কীবোর্ড থেকে একটি লাইন পড়বে "exit"


2. বিবৃতি চালিয়ে যান

কিন্তু breakএকমাত্র জাভা বিবৃতি নয় যা আপনাকে লুপের আচরণ নিয়ন্ত্রণ করতে দেয়। জাভাও continueবিবৃতি আছে. আপনি যদি continueলুপের ভিতরে একটি বিবৃতি কার্যকর করেন, লুপের বর্তমান পুনরাবৃত্তি সময়সূচীর আগে শেষ হবে।

লুপ বডি একবার এক্সিকিউট করাকে লুপের পুনরাবৃত্তি বলা হয়। বিবৃতিটি continueলুপের বর্তমান পুনরাবৃত্তিকে বাধা দেয়, কিন্তু breakবিবৃতির বিপরীতে, এটি লুপটিকে নিজেই শেষ করে না। বিবৃতিটিও সংক্ষিপ্ত:

continue;

বিবৃতিটি continueএকটি লুপে খুব সুবিধাজনক যদি আমরা কিছু পরিস্থিতিতে লুপ বডির সম্পাদন 'এড়িয়ে যেতে' চাই।

টাস্ক: আমরা এমন একটি প্রোগ্রাম লিখতে চাই যা সংখ্যা থেকে সংখ্যা মুদ্রণ করে 1কিন্তু 20সংখ্যাগুলি এড়িয়ে যায় যা দ্বারা বিভাজ্য 7। এই এই কোড মত দেখতে পারে কি.

কোড ব্যাখ্যা
int i = 1;
while (i <= 20)
{
   if ( (i % 7) == 0 )
     continue;
   System.out.println(i);
   i++;
}
প্রোগ্রাম থেকে সংখ্যা প্রদর্শন 1করে 20. যদি সংখ্যাটি দ্বারা বিভাজ্য হয় 7(ভাগের অবশিষ্টাংশ 7is দ্বারা 0), তাহলে আমরা সংখ্যাটি প্রদর্শন করা এড়িয়ে যাই।

আসলে, এই কোডটি কাজ করবে না , কারণ iনম্বরটি চিরতরে আটকে থাকবে 7। সর্বোপরি, continueবিবৃতিটি অন্য দুটি বিবৃতি এড়িয়ে যায়: System.out.println(i)এবং i++. ফলস্বরূপ, একবার আমরা মান পৌঁছালে 7, ভেরিয়েবল iপরিবর্তন করা বন্ধ হয়ে যাবে এবং আমরা একটি অসীম লুপে থাকব।

এই খুব সাধারণ ভুলটি বোঝানোর জন্য আমরা উদ্দেশ্যমূলকভাবে কোডটি লিখেছি। আমরা কিভাবে এটা ঠিক করব?

এখানে দুটি বিকল্প আছে:

বিকল্প 1:i কার্যকর করার আগে পরিবর্তন করুন continue, কিন্তু পরেi % 7

বিকল্প 2:i লুপের শুরুতে সর্বদা বৃদ্ধি করুন । কিন্তু তখন iএর প্রারম্ভিক মান হতে হবে 0

বিকল্প 1 বিকল্প 2
int i = 1;
while (i <= 20)
{
   if ( (i % 7) == 0 )
   {
     i++;
     continue;
   }
   
   System.out.println(i);
   i++;
}
int i = 0;
while (i < 20)
{
   i++;
   if ( (i % 7) == 0)
     continue;
   System.out.println(i);
}