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

如何编写Java循环计算器:输入数字与运算符,以=结束并存储公式

Java计算器程序修正

原程序存在的核心问题

  • 冗余创建两个Scanner实例,易引发输入读取异常
  • 流程逻辑颠倒:未遵循「先输入数字→选运算符」的要求
  • 初始值错误:sum初始化为0,未用第一个输入的数字作为计算起点
  • 缺少公式存储逻辑:未用String记录完整计算表达式
  • 循环条件不合理:input >=0无法正确触发终止逻辑
  • 运算逻辑错误:每次运算后未更新sum,且输入=时错误要求继续输入数字
  • 输出格式不符合样例要求

修正后的完整代码

import java.util.Scanner;

public class Calculator1 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int result = 0;
        StringBuilder formula = new StringBuilder();

        // 读取第一个数字
        System.out.print("Enter number: ");
        result = scanner.nextInt();
        formula.append(result);

        while (true) {
            // 读取运算符
            System.out.print("\nChoose an operator (+ or - or * or =) : ");
            String operator = scanner.next();

            if ("=".equals(operator)) {
                break;
            }

            // 读取下一个数字
            System.out.print("\nEnter number: ");
            int num = scanner.nextInt();

            // 更新计算结果和公式字符串
            switch (operator) {
                case "+":
                    result += num;
                    break;
                case "-":
                    result -= num;
                    break;
                case "*":
                    result *= num;
                    break;
                default:
                    System.out.println("无效运算符,请输入+、-、*或=");
                    continue;
            }
            formula.append(" ").append(operator).append(" ").append(num);
        }

        // 输出最终结果
        System.out.println("\nAnswer:\n");
        System.out.println(formula + " = " + result);
        scanner.close();
    }
}

关键修正说明

  1. 单一Scanner实例:避免多Scanner导致的输入缓存问题
  2. 流程对齐需求:严格按照「数字→运算符→数字→运算符...→=」的顺序执行
  3. 公式存储:用StringBuilder高效拼接计算表达式,满足String存储公式的要求
  4. 循环终止逻辑:遇到=直接跳出循环,无需再输入数字
  5. 结果更新:每次运算后实时更新result,保证计算正确性
  6. 格式匹配:输出完全符合样例的换行和内容格式

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 00:21:42