Java:多输入场景下仅输入里程哨兵值后终止循环的实现
解决方法:仅输入行驶里程为0时终止程序
别担心,这个需求完全可以实现!而且修改起来非常简单,咱们直接调整程序的终止判断逻辑就好。
首先,我猜你当前程序的核心逻辑是在循环里反复接收行驶里程(miles)和耗油量(gallons)的输入,只有当两者同时为0时才退出循环。现在咱们只需要把终止条件改成只要miles为0就退出,不用管耗油量的数值。
修改后的完整代码
import java.util.Scanner; public class Mileage { public static void main(String[] args) { // 初始化 Scanner Scanner sc = new Scanner(System.in); int miles = -1; double gallons; // 耗油量用double更合理,毕竟实际中可能有小数 while (true) { // 提示输入行驶里程 System.out.print("请输入行驶里程(输入0终止程序):"); miles = sc.nextInt(); // 核心修改:只要里程为0,直接终止循环 if (miles == 0) { System.out.println("程序已终止"); break; } // 里程不为0时,再输入耗油量 System.out.print("请输入耗油量:"); gallons = sc.nextDouble(); // 计算并输出油耗(可根据你的需求调整格式或逻辑) double mileage = (double) miles / gallons; System.out.printf("当前油耗为:%.2f 英里/加仑%n", mileage); } sc.close(); // 记得关闭Scanner释放资源 } }
关键修改点说明
- 提前判断终止条件:把原来的“同时判断里程和耗油量是否为0”,改成在输入里程后立刻检查
miles == 0,如果满足就直接用break跳出循环,终止程序,不用再输入耗油量。 - 优化输入流程:只有当里程不为0时,才会继续要求输入耗油量,这样用户想终止时不用额外输入0的耗油量,易用性直接提升。
- 数据类型优化:把耗油量的类型从
int改成double,因为实际使用中耗油量可能是小数(比如3.8加仑),这样计算出来的油耗结果会更准确。
这样修改后,程序就会完全符合你的需求啦~
内容的提问来源于stack exchange,提问作者Kaj Godfrey
相关产品推荐
相关产品推荐

