對於問題的抽象性質的理解,但儘管我正在考慮像java或c#這樣的實現,但這是一般概念,目前略微困擾我。級聯布爾邏輯
當大多數語言使用布爾邏輯進行測試時,只有一個答案是有效的。
if (fridgeDoorClosed !=true)
closeFridge();
else
eatSandwich();
但是,如果多個路徑可能是正確的呢?假設用戶使用複選框選擇他/她想查看的網頁上的表單。一個可怕的不雅途徑做到這一點將是:
if ((checkbox1==true)&&(checkbox2==true)&&(checkbox3==true))
blah
else if
((checkbox1==true)&&(checkbox2==true)&&(checkbox3==false))
blah
等等,當然要小心秩序。
在諸如java和c#等語言的語言中,可以使用switch語句,而忽略通常的break語句來強制級聯。但是這種方法能否以實用的方式使用?
我認爲你的開關與案件涵蓋所有可能的組合似乎最有可能工作。嵌套如果語句可能會非常棘手以獲得100%正確。不幸的是,仍然需要相當多的情況下(10個可能的情況下3個選項17爲4等) – Stumbler