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;
}
我有以下 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;
}