如何用Kotlin实现每3道错题扣1个正确分的得分计算功能?
得分计算逻辑Kotlin实现方案
原有代码问题
你当前编写的代码存在两个核心逻辑错误:
- 仅当错题数是3的整数倍时才会触发扣减,不符合「每累计3道就扣1分」的规则(比如错题数为4时也满足累计3道的扣减条件,原有逻辑不会触发扣减)
- while循环会无限执行
correctIndex--,只要wrongIndex%3==0成立就会一直扣减正确数,最终得到完全错误的负数结果
正确实现逻辑
核心计算规则:
- 每3道错题扣除1个正确题得分,扣除的总分数为错题总数除以3向下取整的结果
- 最终有效得分不能为负数,最低为0
代码实现
独立计算函数
/** * 计算有效正确题得分 * @param originalCorrect 原始正确题数量 * @param wrongCount 错题总数量 * @return 最终有效得分,最低为0 */ fun calculateNetCorrectScore(originalCorrect: Int, wrongCount: Int): Int { val deductScore = wrongCount / 3 return (originalCorrect - deductScore).coerceAtLeast(0) }
调用示例(更新到TextView)
// 替换为你实际存储的正确数、错题数变量 val finalScore = calculateNetCorrectScore(correctIndex, wrongIndex) // 展示到TextView yourTextView.text = "当前有效得分:$finalScore"
效果验证
用你给出的示例测试:错题数6、正确题数3
- 扣除分数 = 6 /3 = 2
- 最终得分 = 3 - 2 = 1,完全符合预期结果
内容的提问来源于stack exchange,提问作者Amirmohammad
相关产品推荐
相关产品推荐

