පැහැදිලි 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
බොහෝ විට කේත සුවඳක් දැක්විය හැකි බැවින් මම සාමාන්යයෙන් මගේ කේතයේ භාවිතා කරන්නේ කලාතුරකිනි.