Sepertinya saya cukup sering melihatnya dalam kode saya dan yang lainnya. Tidak ada apa-apa tentang hal itu yang kelihatannya sangat salah, tetapi itu mengganggu saya karena sepertinya itu bisa dilakukan dengan lebih baik. Saya kira pernyataan kasus, mungkin sedikit lebih masuk akal, tetapi seringkali variabel adalah tipe yang tidak berfungsi dengan baik atau sama sekali dengan pernyataan kasus (tergantung pada bahasa)
If variable == A
if (Flag == true)
doFooA()
else
doFooA2
else if variable == B
if (Flag == true)
doFooB()
else
doFooB2
else if variable == C
if (Flag == true)
doFooC()
else
doFooC2
Tampaknya ada beberapa cara untuk "faktor" ini, seperti 2 set if-elses, di mana satu set menangani ketika Bendera == true.
Apakah ada "cara yang baik" untuk memfaktorkan hal ini, atau mungkin ketika algoritma if-else ini terjadi biasanya berarti Anda melakukan sesuatu yang salah?
if (Flag == true)
bukan hanya If (Flag)
? Jika Anda pikir itu If (Flag == true)
lebih baik, mengapa tidak if ((Flag == true) == true)
?