প্রোগ্রামিংয়ে একই কাজ বারবার করার প্রয়োজন পড়ে। লুপ এই পুনরাবৃত্ত কাজ অটোমেট করে কোড এফিশিয়েন্ট করে। জাভায় while এবং do...while লুপ একটি নির্দিষ্ট কন্ডিশন মেট হওয়া পর্যন্ত কোড ব্লক এক্সিকিউট করে। এগুলো কন্ডিশনাল if স্টেটমেন্টের মতো—if কন্ডিশন true হলে একবার এক্সিকিউট হয়, কিন্তু while লুপ কন্ডিশন false হয়া পর্যন্ত চলে।
এই টিউটোরিয়ালে জাভা while এবং do...while স্টেটমেন্টের বেসিকস এবং উদাহরণ আলোচনা করা হয়েছে।
Java While Loop
while লুপ কন্ডিশন true থাকা পর্যন্ত কোড ব্লক এক্সিকিউট করে। সিনট্যাক্স if স্টেটমেন্টের মতো:
while (condition_is_met) { // Code to execute } while লুপ প্যারেনথেসিসের এক্সপ্রেশন টেস্ট করে। Boolean এক্সপ্রেশন true হলে লুপ বডি এক্সিকিউট হয়, তারপর আবার এক্সপ্রেশন ইভ্যালুয়েট হয়। এক্সপ্রেশন false হয়া পর্যন্ত প্রসেস চলে। false হলে লুপ থামে এবং বাকি প্রোগ্রাম চলে।
উদাহরণ: ক্যাপেন্টার ৫টি টেবিল বানাতে পারেন। অর্ডার কতটুকু নেওয়া যাবে তার আগে জানতে প্রোগ্রাম:
int limit = 5; int orders_made = 0; while (orders_made < limit) { orders_made++; int capacity = limit - orders_made; String message = capacity + "more tables can be ordered."; System.out.println(message); } আউটপুট: 4 more tables can be ordered. 3 more tables can be ordered. 2 more tables can be ordered. 1 more tables can be ordered. 0 more tables can be ordered.ব্যাখ্যা:
limit = সর্বোচ্চ টেবিল। orders_made = করা অর্ডার। while লুপ চলে যতক্ষণ orders_made < limit। orders_made++ ইনক্রিমেন্ট। ক্যাপাসিটি ক্যালকুলেট করে মেসেজ প্রিন্ট। orders_made > limit হলে লুপ থামে।
Java Do-While Loop
do...while লুপ while লুপের একটি টাইপ। do ব্লক একবার এক্সিকিউট হয় কন্ডিশন চেক করার আগে। তারপর কন্ডিশন true থাকা পর্যন্ত রিপিট হয়। while লুপ কন্ডিশন পहলে চেক করে, do...while কন্ডিশন পরে চেক করে। সিনট্যাক্স:
do { // Code to execute } while (condition_is_met); উদাহরণ: ১ থেকে ১০ পর্যন্ত সংখ্যা حدস করার গেম। ইউজার প্রথমে সংখ্যা ইনপুট দেবে, তারপর চেক হবে। import java.util.Scanner; class GuessingGame { public static void main(String[] args) { int number = 8; int guess = 0; Scanner input = new Scanner(System.in); do { System.out.print("Enter a number between 1 and 10: "); guess = input.nextInt(); } while (number != guess); System.out.println("You're correct!"); } } রান করলে প্রথমে ইনপুট নিবে, তারপর কন্ডিশন চেক। حدস করার উদাহরণ: Enter a number between 1 and 10: 9 Enter a number between 1 and 10: 1 Enter a number between 1 and 10: 4 Enter a number between 1 and 10: 5 Enter a number between 1 and 10: 8 You're correct!ব্যাখ্যা:
Scanner দিয়ে ইউজার ইনপুট। number = حدস করা সংখ্যা, guess = ইউজার ইনপুট। do ব্লকে প্রম্পট ও ইনপুট। while চেক করে number != guess হলে আবার লুপ। সঠিক হলে লুপ থামে এবং "You're correct!" প্রিন্ট।
Infinite Loops
ইনফিনিট লুপ চলে যাবে সदा। while লুপের কন্ডিশন কখনো false না হলে প্রোগ্রাম ক্র্যাশ করতে পারে। তাই লুপ কখনো নাকখনো থামবে তা নিশ্চিত করতে হয়। উদাহরণ:
while (true) { // Code to execute } break স্টেটমেন্ট দিয়ে থামানো যায়। উদাহরণ: ৫টি টেবিল স্টকে। স্টক শেষ হলে লুপ থামাবে। Boolean tables_in_stock = true; int orders_made = 0; while (tables_in_stock) { orders_made++; if (orders_made == 5) { System.out.println("We are out of stock."); break; } else { int tables_left = 5 - orders_made; String message = "There are " + tables_left + " tables in stock."; System.out.println(message); } } আউটপুট: There are 4 tables in stock. There are 3 tables in stock. There are 2 tables in stock. There are 1 tables in stock. We are out of stock.ব্যাখ্যা:
tables_in_stock true থাকা পর্যন্ত লুপ চলে। কিন্তু সেটি false করার উপায় নেই। তাই break স্টেটমেন্ট ব্যবহার করলাম orders_made == 5 হলে। ৫টি অর্ডার হলে "We are out of stock." প্রিন্ট করে ব্রেক হয়।
উপসংহার
while লুপ কন্ডিশন true থাকা পর্যন্ত কোড এক্সিকিউট করে, false হলে থামে। do...while লুপ প্রথমে কোড এক্সিকিউট করে, তারপর কন্ডিশন চেক করে। এই টিউটোরিয়ালে দুটি লুপ এবং ইনফিনিট লুপ উদাহরণসহ আলোচনা করা হয়েছে। এখন আপনি এক্সপার্টের মতো জাভা while এবং do...while লুপ লিখতে পারবেন!