You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java循环逻辑咨询:如何在getChange后实现输入-1退出程序

Java找零程序循环逻辑解决方案

用do-while循环就能完美解决你的需求,因为它会先执行一次完整的业务流程,再根据用户输入判断是否继续循环,完全匹配你“先执行找零,再选择退出或重来”的逻辑。

直接看代码示例,把整个流程塞进do-while的循环体里:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int userChoice;

        do {
            // 1. 输入账单和付款金额
            System.out.print("输入账单金额:");
            double bill = scanner.nextDouble();
            System.out.print("输入付款金额:");
            double payment = scanner.nextDouble();

            // 2. 创建新的MakeChange对象并执行找零
            MakeChange change = new MakeChange(bill, payment);
            change.getChange();

            // 3. 提示用户选择
            System.out.print("输入-1退出,输入其他任意整数继续:");
            userChoice = scanner.nextInt();
            scanner.nextLine(); // 处理输入后的换行,避免后续读取异常

        } while (userChoice != -1); // 只要不是-1就重复流程

        scanner.close();
        System.out.println("程序已退出");
    }
}

关键说明:

  • 循环体包裹了全部流程:从输入金额、创建对象到执行找零,再到用户选择,确保每次循环都是全新的一轮操作。
  • do-while的特性是先执行循环内容,再判断条件,刚好符合你“必须先跑一次找零,再问用户要不要继续”的要求。
  • 最后加的scanner.nextLine()是为了吃掉nextInt()留下的换行符,避免下一次nextDouble()读取到空内容导致报错。

如果非要用while循环,就得先初始化userChoice为非-1的值,比如int userChoice = 0;,然后把判断条件放在开头,但这样不如do-while直观,没必要多此一举。

内容的提问来源于stack exchange,提问作者okcarl

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 06:25:19