Android If 语句未按预期计算

Android If Statement Not Evaluating as Expected

我有以下 If 语句:

private boolean NextLevel(int intCorrectAnswers, int intNumberOfQuestionsAsked) {
    if (intNumberOfQuestionsAsked >= 20 && ((intCorrectAnswers / intNumberOfQuestionsAsked) >= .8)){
        return true;
    } else {
        return false;
    }
}

我想要的是,如果所提问题的数量至少为 20,并且正确率至少为 80%,则 return 为真。

单步执行代码,我至少回答了 46 个问题,除了 1 个问题之外,其他所有问题都是正确的,但它总是 return 错误。我错过了什么?

您正在执行整数除法,该除法不会 return 浮点值或十进制值,因此您的结果始终为假。转换你的变量 加倍或浮动以获得您想要的结果。

double dResult = ((double)intCorrectAnswers / (double)intNumberOfQuestionsAsked);
if (intNumberOfQuestionsAsked >= 20 && (dResult >= 0.8)) {
    return true;
} else {
    return false;
}