පැහැදිලි elseවාරණය
සියලු ප්රකාශ ආවරණය වන පරිදි ifහිස් ප්රකාශයක් ලෙස මම මෙය එකඟ නොවෙමි, නමුත් elseපුරුද්දෙන් බැහැරව එකතු කිරීම හොඳ දෙයකි.
ක ifප්රකාශය, මගේ මතකයට, ඇත්තටම වෙනස් කාර්යයන් දෙකක් ආවරණය කරයි.
අපට යමක් කිරීමට අවශ්ය නම් එය මෙහි කරන්න.
මේ වගේ දේවල් වලට පැහැදිලිවම කොටසක් අවශ්ය නැහැ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අනවශ්ය ලෙස කැත වන දෙවන ප්රති result ලයට ඔබව යොමු කරයි.
අපි නිශ්චිත තත්වයක් සඳහා පරික්ෂා කරන්නේ නම්, එම සිදුවීම 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;
}
}
මෙම නීති අදාළ වන්නේ ඔබ නව කේතයක් ලියන විට පමණක් බව මතක තබා ගන්න . IMHO පිරික්සීමට පෙර හිස් elseවගන්ති ඉවත් කළ යුතුය.
සඳහා trueනොව, සඳහා පරීක්ෂා කරන්නfalse
නැවතත් මෙය සාමාන්ය මට්ටමින් හොඳ උපදෙස් වන නමුත් බොහෝ අවස්ථාවලදී මෙය කේතය අනවශ්ය ලෙස සංකීර්ණ වන අතර කියවිය නොහැකි තරම් අඩු කරයි.
කේතය කැමති වුවත්
if(!customer.canBuyAlcohol()) {
// ...
}
යනු පා er කයාට විහිළුවක්, නමුත් එය සෑදීමයි
if(customer.canBuyAlcohol()) {
// Do nothing.
} else {
// ...
}
අවම වශයෙන් නරක නම්, නරක නොවේ නම්.
මම මීට වසර ගණනාවකට කලින් BCPL මත ලියවුණු හා එම භාෂාවෙන් එහි දී ය IFවගන්තිය සහ ක UNLESSකොපමණ වැඩියෙන් ඔබ readably ලෙස කේතය හැකි නිසා වගන්තිය:
unless(customer.canBuyAlcohol()) {
// ...
}
එය සැලකිය යුතු ලෙස වඩා හොඳ නමුත් තවමත් පරිපූර්ණ නොවේ.
මගේ පෞද්ගලික ක්රියාවලිය
පොදුවේ ගත් කල, මම නව කේතයක් ලියන විට බොහෝ විට ප්රකාශයක් සඳහා හිස් elseබ්ලොක් එකක් එකතු ifකරමි. මෙය මට DFSඋගුලෙන් බේරීමට උපකාරී වන අතර කේතය සමාලෝචනය කරන විට තවත් බොහෝ දේ ඇති බව මම දනිමි. කෙසේ වෙතත්, මම සාමාන්යයෙන් TODOඅදහස් දැක්වීමක් එකතු කරමි .
if (returnVal == JFileChooser.APPROVE_OPTION) {
handleFileChosen();
} else {
// TODO: Handle case where they pressed Cancel.
}
elseබොහෝ විට කේත සුවඳක් දැක්විය හැකි බැවින් මම සාමාන්යයෙන් මගේ කේතයේ භාවිතා කරන්නේ කලාතුරකිනි.