我正在使用foreach循环检查用户输入的给定5个乘法问题的答案。 (使用实例在开始时显示5个问题)
现在,如果答案正确,我将尝试添加分数计数器并将其加1,然后根据分数,我将显示星星。例如,如果分数小于3,则为1星,如果分数为4,则为2星,如果为5然后是3星。即使所有答案正确,我也只能获得一颗星星。谁能告诉我如何实现这一目标?
我尝试在if语句中添加score ++。但不会增加得分值。
%Y
答案 0 :(得分:2)
在这里假设
(_TestModeQuestionUIRefrence.a * _TestModeQuestionUIRefrence.b) == answer
都是float
个值。 从不直接使用float
比较==
。即使从逻辑上讲,他们可能永远不会平等。由于Floating point precision,它们之间可能会有很小的“ε”。
使用Mathf.Approximately
来代替,它使用那个小的“ epsilon”作为其相等性定义。
if (Mathf.Approximately(_TestModeQuestionUIRefrence.a * _TestModeQuestionUIRefrence.b, answer))
类似于
if (_TestModeQuestionUIRefrence.a * _TestModeQuestionUIRefrence.b - answer <= diferenceSmallEnoughThreshold)
其中differenceSmallEnoughThreshold
是为实现正常性而定义的阈值