根据你的描述,你希望根据每次输入的值动态更新最大重量和最小重量。之前的代码在逻辑上确实存在问题,导致最小重量更新不准确。下面是修正后的 Java 代码: ```java // 假设 cupLyoStuWeighingLiquidLog 是一个包含 stuMaximumWeight 和 stuMinimumWeight 属性的对象 // modifiedString 是当前输入的重量字符串,stuAnswersNum 是当前输入的重量数值 if (cupLyoStuWeighingLiquidLog.getStuMaximumWeight() == null && cupLyoStuWeighingLiquidLog.getStuMinimumWeight() == null) { // 第一次输入,将输入值同时设置为最大重量和最小重量 cupLyoStuWeighingLiquidLog.setStuMaximumWeight(modifiedString); cupLyoStuWeighingLiquidLog.setStuMinimumWeight(modifiedString); } else { // 获取当前记录的最大重量和最小重量,并转换为 double 类型 double stuMaximumWeightNum = Double.parseDouble(cupLyoStuWeighingLiquidLog.getStuMaximumWeight()); double stuMinimumWeightNum = Double.parseDouble(cupLyoStuWeighingLiquidLog.getStuMinimumWeight()); // 如果当前输入值大于最大重量 if (stuAnswersNum > stuMaximumWeightNum) { // 更新最大重量 cupLyoStuWeighingLiquidLog.setStuMaximumWeight(modifiedString); } // 如果当前输入值小于最小重量 else if (stuAnswersNum < stuMinimumWeightNum) { // 更新最小重量 cupLyoStuWeighingLiquidLog.setStuMinimumWeight(modifiedString); } // 如果当前输入值介于最大和最小重量之间,则不做更新 } ``` 代码解释 1. 第一次输入:当最大重量和最小重量都为 `null` 时,说明是第一次输入。此时将输入的值同时设置为最大重量和最小重量。 2. 非第一次输入: - 先将当前记录的最大重量和最小重量转换为 `double` 类型。 - 如果当前输入值大于最大重量,就更新最大重量。 - 如果当前输入值小于最小重量,就更新最小重量。 - 如果当前输入值介于最大和最小重量之间,不做任何更新。 额外需要注意的逻辑点 1. 异常处理:在使用 `Double.parseDouble()` 方法将字符串转换为 `double` 类型时,要确保输入的字符串是有效的数字格式。如果输入的字符串无法转换为数字,会抛出 `NumberFormatException` 异常,建议添加异常处理代码。 2. 输入值的有效性:要确保 `modifiedString` 和 `stuAnswersNum` 的值是一致的,`stuAnswersNum` 应该是 `modifiedString` 转换后的 `double` 类型值。 3. 空值检查:在代码中假设 `cupLyoStuWeighingLiquidLog` 不为 `null`,如果该对象可能为 `null`,需要在代码开始处添加空值检查,避免出现 `NullPointerException` 异常。 [2025-07-30 17:01:24 | AI写代码神器 | 714点数解答]