সুস্পষ্ট elseব্লক
আমি সমস্ত বিবৃতি coveringেকে একটি কম্বল স্টেটমেন্ট হিসাবে এটির সাথে একমত নই ifতবে elseঅভ্যাসের বাইরে কোনও ব্লক যুক্ত করা ভাল জিনিস হ'ল এমন সময় রয়েছে।
ifআমার মতে একটি বিবৃতি আসলে দুটি স্বতন্ত্র ফাংশন coversেকে রাখে।
আমাদের যদি কিছু করার কথা হয় তবে তা এখানে করুন।
এই মত স্টাফ স্পষ্টত একটি অংশ প্রয়োজন হয় নাelse ।
if (customer.hasCataracts()) {
appointmentSuggestions.add(new CataractAppointment(customer));
}
if (customer.isDiabetic()) {
customer.assignNurse(DiabeticNurses.pickBestFor(customer));
}
এবং কিছু ক্ষেত্রে একটি elseবিভ্রান্ত হতে পারে যোগ করার জন্য জোর দেওয়া ।
if (k > n) {
return BigInteger.ZERO;
}
if (k <= 0 || k == n) {
return BigInteger.ONE;
}
হয় না হিসাবে একই
if (k > n) {
return BigInteger.ZERO;
} else {
if (k <= 0 || k == n) {
return BigInteger.ONE;
}
}
যদিও এটি কার্যত একই রকম। ifখালি দিয়ে প্রথম লেখা elseআপনাকে দ্বিতীয় ফলাফলের দিকে নিয়ে যেতে পারে যা অহেতুক কুৎসিত।
আমরা যদি কোনও নির্দিষ্ট রাষ্ট্রের জন্য যাচাই করে নিই তবে প্রায়শই elseআপনাকে খালিটি যুক্ত করা ভাল ধারণাটি আপনাকে সেই ঘটনাটি আবরণ করার জন্য মনে করিয়ে দেবে
// Count wins/losses.
if (doors[firstChoice] == Prize.Car) {
// We would have won without switching!
winWhenNotSwitched += 1;
} else {
// We win if we switched to the car!
if (doors[secondChoice] == Prize.Car) {
// We picked right!
winWhenSwitched += 1;
} else {
// Bad choice.
lost += 1;
}
}
মনে রাখবেন যে আপনি যখন নতুন কোড লিখছেন তখনই এই নিয়মগুলি প্রযোজ্য । আইএমএইচও খালি elseক্লজগুলি চেকিনের আগে মুছে ফেলা উচিত।
জন্য পরীক্ষা, জন্য trueনয়false
আবার এটি একটি সাধারণ পর্যায়ে ভাল পরামর্শ তবে অনেক ক্ষেত্রে এটি কোডকে অহেতুক জটিল এবং কম পাঠযোগ্য করে তোলে।
যদিও কোড পছন্দ
if(!customer.canBuyAlcohol()) {
// ...
}
পাঠকের কাছে ব্যঙ্গ করছে, তবে তা তৈরি করছে
if(customer.canBuyAlcohol()) {
// Do nothing.
} else {
// ...
}
খারাপ না হলেও কমপক্ষে খারাপ।
আমি বহু বছর আগে বিসিপিএলে কোড করেছি এবং সেই ভাষায় একটি IFধারা এবং একটি UNLESSধারা রয়েছে যাতে আপনি আরও সহজেই কোডিং করতে পারেন:
unless(customer.canBuyAlcohol()) {
// ...
}
যা উল্লেখযোগ্যভাবে ভাল, তবে এখনও নিখুঁত নয়।
আমার ব্যক্তিগত প্রক্রিয়া
সাধারণত, আমি যখন নতুন কোড লিখছি তখন আমি প্রায়শই elseএকটি ifবিবৃতিতে একটি খালি ব্লক যুক্ত করে থাকি কেবল আমাকে মনে করিয়ে দেওয়ার জন্য যে আমি এখনও সেই ঘটনাটি আবরণ করি নি। এটি আমাকে DFSফাঁদ এড়াতে সহায়তা করে এবং নিশ্চিত করে যে আমি কোডটি পর্যালোচনা করলে আমি লক্ষ্য করি যে আরও কিছু করার আছে। তবে, আমি সাধারণত TODOট্র্যাক রাখতে একটি মন্তব্য যুক্ত করি
if (returnVal == JFileChooser.APPROVE_OPTION) {
handleFileChosen();
} else {
// TODO: Handle case where they pressed Cancel.
}
আমি দেখতে পাই যে সাধারণত আমি elseআমার কোডটিতে খুব কমই ব্যবহার করি কারণ এটি প্রায়শই কোডের গন্ধকে নির্দেশ করতে পারে।