কন্ডিশনাল বা শর্ত (Conditionals)
If/Else — রাস্তার মোড় (If/Else — The Fork in the Road)
কল্পনা করুন আপনি হাঁটছেন এবং পথটি দুদিকে বেঁকে গেছে। আপনি খেয়াল করে দেখলেন: "বৃষ্টি কি হচ্ছে?" যদি হ্যাঁ হয়, তবে আপনি ছাউনি দেওয়া পথ দিয়ে যাবেন। আর যদি না হয়, তবে সুন্দর দৃশ্য দেখতে দেখতে খোলা পথ দিয়ে যাবেন। জাভাতে if/else ঠিক এই কাজটিই করে থাকে।
ব্র্যাকেটের ভেতরের শর্তটিকে অবশ্যই একটি বুলিয়ান এক্সপ্রেশন (boolean expression) হতে হবে — অর্থাৎ এর ফলাফল হিসেবে true (সত্য) বা false (মিথ্যা) আসতে হবে। জাভা এটি যাচাই করে এবং যেকোনো একটি পথ বেছে নেয়, আর অন্যটিকে পুরোপুরি বাতিল করে দেয়।
আপনার কাছে যদি দুটোর বেশি অপশন বা বিকল্প থাকে, তবে আপনি else if ব্যবহার করে সেগুলোকে একসাথে যুক্ত করতে পারেন — ঠিক যেমন দূরত্বের ওপর ভিত্তি করে হাঁটা, সাইকেল চালানো বা বাসে ওঠার মধ্যে সিদ্ধান্ত নেওয়ার মতো।
If / Else If / Else
সুইচ — টিভি রিমোট (Switch — The TV Remote)
একটি switch স্টেটমেন্টকে অনেকটা টিভি রিমোটের (TV Remote) সাথে তুলনা করা যায়। আপনি এর একটি বোতাম চাপেন (বা একটি মান দেন), এবং সেটি কোন চ্যানেলের সাথে বা কাজের সাথে মেলে তা চেক করে দেখে। যখন আপনি কোনো একটি নির্দিষ্ট ভ্যারিয়েবলকে অনেকগুলো নির্দিষ্ট মানের সাথে মিলিয়ে দেখতে চান, তখন ডজনখানেক else if ব্লক লেখার চেয়ে এটি ব্যবহার করা অনেক বেশি পরিচ্ছন্ন ও সহজ।
কিছু গুরুত্বপূর্ণ নিয়ম:
- প্রতিটি
caseএর শেষে অবশ্যই একটিbreak;থাকতে হবে, নয়তো জাভা নিচের দিকে নেমে গিয়ে বা ফল-থ্রু (fall through) করে পরের কেসটিও রান করে ফেলবে। - যখন অন্য কোনো কেসই মেলে সমাধানে না, তখন
defaultকেসটি রান করে — অনেকটা রিমোটে ভুল বাটন চাপলে (invalid selection) যেমন কিছুই হয় না। switchশুধুমাত্রint,char,String, এবং এনুমের (enum) সাথে কাজ করে (কিন্তুdoubleবাbooleanএর সাথে নয়)।
সুইচ (Switch) স্টেটমেন্ট
শর্তের ভেতর স্ট্রিং মেলানো (Comparing Strings in Conditions)
break দিতে ভুলে গেছেন? জাভা তখন মিলে যাওয়া কেসটির ঠিক নিচের সবগুলো কেস বা "ফল-থ্রু (fall through)" করে এক্সিকিউট করা শুরু করবে। কোনো কোনো ক্ষেত্রে ইচ্ছা করেই এভাবে কাজ করা হয় (যেমন শনি ও রবিবার একসাথে মেলানো), তবে বেশিরভাগ ক্ষেত্রেই এটি একটি বাগ বা ভুল। যদি কখনো সন্দেহ হয়, চোখ বুঝে সবসময় break যোগ করে দেবেন।