1. লুপ তুলনা করা: forবনামwhile

একটি whileলুপ যে কোনো জায়গায় ব্যবহার করা যেতে পারে যেখানে একটি স্টেটমেন্ট বা স্টেটমেন্টের গ্রুপকে বেশ কয়েকবার সঞ্চালন করা প্রয়োজন। কিন্তু সব সম্ভাব্য পরিস্থিতির মধ্যে, একটি হাইলাইট মূল্য.

আমরা সেই পরিস্থিতি সম্পর্কে কথা বলছি যখন প্রোগ্রামার (প্রোগ্রামের স্রষ্টা) আগে থেকেই জানেন যে লুপটি কতবার কার্যকর করা উচিত। 1এটি সাধারণত একটি বিশেষ কাউন্টার ভেরিয়েবল ঘোষণা করে এবং তারপর লুপের প্রতিটি পুনরাবৃত্তির সাথে পরিবর্তনশীলকে বাড়িয়ে (বা হ্রাস) দ্বারা পরিচালিত হয়।

সবকিছু যেমন উচিত কাজ করে বলে মনে হচ্ছে, তবে এটি খুব সুবিধাজনক নয়। লুপের আগে, আমরা কাউন্টার ভেরিয়েবলের প্রাথমিক মান সেট করি। তারপর শর্তে আমরা এটি ইতিমধ্যে চূড়ান্ত মান পৌঁছেছে কিনা তা পরীক্ষা করে দেখুন। কিন্তু আমরা সাধারণত লুপ বডির একেবারে শেষে মান পরিবর্তন করি।

আর লুপের বডি বড় হলে কি হবে? অথবা যদি আমরা বেশ কিছু নেস্টেড লুপ আছে? সাধারণভাবে, এই ক্ষেত্রে কাউন্টার ভেরিয়েবল সম্পর্কে এই সমস্ত তথ্য এক জায়গায় সংগ্রহ করা বাঞ্ছনীয়। forএবং আমরা জাভা লুপ আছে কেন . এটি খুব জটিল দেখায় না:

for (statement 1; condition; statement 2)
{
   block of statements
}

একটি whileলুপের বন্ধনীতে শুধু একটি শর্ত থাকে, কিন্তু একটি forলুপ সেমিকোলন দ্বারা পৃথক দুটি বিবৃতি যোগ করে।

বাস্তবতা এটি শোনার চেয়ে সহজ: কম্পাইলার একটি forলুপকে একটি সাধারণ whileলুপে রূপান্তর করে:

statement 1;
while (condition)
{
   block of statements
   statement 2;
}

অথবা আরও ভাল, আসুন একটি উদাহরণ দিয়ে এটি প্রদর্শন করা যাক। নীচের দুটি কোড স্নিপেট অভিন্ন।

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

iকাউন্টার ভেরিয়েবলের সাথে সম্পর্কিত সমস্ত কোড আমরা এক জায়গায় একত্রিত করেছি ।

একটি forলুপে, বিবৃতি 1 শুধুমাত্র একবার কার্যকর করা হয়, লুপ নিজেই শুরু হওয়ার আগে। এটি দ্বিতীয় কোড স্নিপেটে স্পষ্টভাবে দেখা যায়

বিবৃতি 2 লুপের বডির মতো একই সংখ্যক বার কার্যকর করা হয় এবং লুপের পুরো বডিটি কার্যকর করার পরে প্রতিবার এটি কার্যকর করা হয়


2. যেখানে forলুপ ব্যবহার করা হয়

লুপ forসম্ভবত জাভাতে সবচেয়ে বেশি ব্যবহৃত লুপ। এটি সর্বত্র ব্যবহৃত হয়, প্রোগ্রামারদের জন্য এটি একটি whileলুপের চেয়ে পরিষ্কার এবং আরও সুবিধাজনক। কার্যত যেকোনো whileলুপকে লুপে রূপান্তর করা যায় for

উদাহরণ:

যখন লুপ লুপের জন্য
int i = 3;
while (i >= 0)
{
   System.out.println(i);
   i--;
}
for (int i = 3; i >= 0; i--)
{
   System.out.println(i);
}
int i = 0;
while (i < 3)
{
   System.out.println(i);
   i++;
}
for (int i = 0; i < 3; i++)
{
   System.out.println(i);
}
boolean isExit = false;
while (!isExit)
{
   String s = console.nextLine();
   isExit = s.equals("exit");
}
for (boolean isExit = false; !isExit; )
{
   String s = console.nextLine();
   isExit = s.equals("exit");
}
while (true)
   System.out.println("C");
for (; true; )
   System.out.println("C");
while (true)
{
   String s = console.nextLine();
   if (s.equals("exit"))
      break;
}
for (; true; )
{
   String s = console.nextLine();
   if (s.equals("exit"))
      break;
}

শেষ উদাহরণে মনোযোগ দিন। লুপ কাউন্টারের সাথে কাজ করার জন্য বিবৃতি অনুপস্থিত। কোন পাল্টা এবং কোন বক্তব্য নেই.

একটি forলুপে, জাভা আপনাকে "কাউন্টার শুরু করার বিবৃতি" এবং "কাউন্টার আপডেট করার বিবৃতি" বাদ দিতে দেয়। এমনকি যে অভিব্যক্তিটি লুপ অবস্থা নির্ধারণ করে তা বাদ দেওয়া যেতে পারে।



for3. লুপ ব্যবহারের সূক্ষ্মতা

forloops এবং breakএবং continueস্টেটমেন্ট ব্যবহার সম্পর্কে একটি গুরুত্বপূর্ণ পয়েন্ট .

একটি লুপে একটি breakবিবৃতি forএকটি লুপের মতোই কাজ করে while— এটি লুপটি অবিলম্বে বন্ধ করে দেয়। একটি continueবিবৃতি লুপ বডি এড়িয়ে যায়, কিন্তু নয় statement 2(যা লুপ কাউন্টার পরিবর্তন করে)।

আসুন কিভাবে forএবং whileloops সম্পর্কিত হয় আরেকবার দেখে নেওয়া যাক।

for (statement 1; condition; statement 2)
{
   block of statements
}
statement 1;
while (condition)
{
   block of statements
   statement 2;
}

যদি কোনো স্টেটমেন্ট continueforলুপে এক্সিকিউট করা হয় , তাহলে স্টেটমেন্টের বাকি ব্লক বাদ দেওয়া হয়, কিন্তু স্টেটমেন্ট 2 (যেটি forলুপের কাউন্টার ভেরিয়েবলের সাথে কাজ করে) এখনও এক্সিকিউট করা হয়।

7 দ্বারা বিভাজ্য সংখ্যা বাদ দিয়ে আমাদের উদাহরণে ফিরে আসা যাক।

এই কোড চিরতরে লুপ হবে এই কোড ভাল কাজ করবে
int i = 1;
while (i <= 20)
{
   if ( (i % 7) == 0) continue;
   System.out.println(i);
   i++;
}
for (int i = 1; i <= 20; i++)
{
   if ( (i % 7) == 0) continue;
   System.out.println(i);
}

যে কোডটি whileলুপ ব্যবহার করে তা কাজ করবে না — i কখনই 7 এর বেশি হবে না। কিন্তু লুপের কোডটি forঠিক কাজ করবে।



4. লুপের জন্য তুলনা করা: জাভা বনাম প্যাসকেল

উপায় দ্বারা, Pascal এছাড়াও একটি Forলুপ আছে. সাধারণভাবে, মূলত প্রতিটি প্রোগ্রামিং ভাষার একটি আছে। কিন্তু প্যাসকেলে এটা খুবই পরিষ্কার। উদাহরণ:

প্যাসকেল জাভা
For i := 1 to 10 do
Begin
   Writeln(i);
End;
for (int i = 1; i <= 10; i++)
{
   System.out.println(i);
}
For i := 1 to 10 do step 2
Begin
   Writeln(i);
End;
for (int i = 1; i <= 10; i = i + 2)
{
   System.out.println(i);
}
For i := 10 downto 0 do step 2
Begin
   Writeln(i);
End;
for (int i = 10; i >= 0; i = i - 2)
{
   System.out.println(i);
}