我需要知道对我来说,制作决策表或if-else语句是否更好。如果决策表更适合以下规则,请告诉我我需要制定哪些基本代码。我试过使用if-else语句,但输出不是我想要的。这个问题是关于百家乐游戏的,这里是规则:


首先,如果任一玩家的手牌为8或9(称为“自然”),则游戏结束且没有第三张牌
曾经画过
其次,如果没有自然,则玩家会收到第三张牌(“抽奖”或“命中”),否则
(“站立拍拍”),请遵循以下规则:
-玩家必须抓出一张手牌为5或更少的牌,并用6或更多的手牌站起来。
-第三,如果没有天然物,则经销商按照以下规则抽奖或立牌
-如果玩家未抓牌,则发牌人遵循与玩家相同的规则:发牌人
必须用5只或更少的手抓一张牌,并用6只或更多的手拍打。
-如果玩家确实抓了第三张纸牌,则决定将仅基于该纸牌的价值(称为C3)以及
经销商的手。庄家必须抽出一张手数少的卡
等于或等于某个极限L,其中L计算如下:
如果C3为8或更大,则让Y = C3-10,否则让Y = C3。所以Y将来自
-2至7。
o要获得L,将Y除以2,截断结果,然后加3。
从2到6。o交易者必须以L或
减。

最佳答案

原则上,一旦if-else-if子句达到5个或更多(刚好足以影响平均访问时间的值),则应使用决策表/开关等(如果您担心通过案例进行有效处理)。 )实例。

更新:5没有写在任何地方。我用它来说明一个概念,尽管我记得曾经有一些编译器在切换用例为8或更多时这样做,但这是很久以前的事了

基本原理是,手动执行每个if子句将导致线性开销,而对于决策表,访问将是恒定时间。

实际上,一旦案例数变得很重要,那么每个体面的编译器就已经将您的代码优化到了决策表/哈希表中,因此这是无关紧要的。

Following会有所帮助。请注意,选择开关还是决策表,或者其他选择还取决于您的测试子句的结构。开关仅适用于整数值。如果您不能以某种方式将测试条件与随机访问联系起来,那么您可能别无选择,只能使用if-else。

10-06 10:08