【问题标题】:Calculator_Switch JavaFundamentalCalculator_Switch Java基础
【发布时间】:2023-03-17 19:43:02
【问题描述】:

您好,我尝试了计算器的语法,操作数为 char 但结果总是错误。 我正在使用日食(Luna)。上面没有错误或警告信息。

语法

    Scanner in = new Scanner(System.in);
    int answer = 0;
    System.out.println("Enter a number:");
    int num1 = in.nextInt();
    System.out.println("Enter another number:");
    int num2 = in.nextInt();
    System.out.println("Enter the operand:");
    char input =(char) in.nextInt();
    switch (input){
    case'*':
        answer = num1 * num2;
        break;
    case '/':
        answer = num1/num2;
        break;
    case '%':
        answer = num1%num2;
        break;
    case '+':
        answer = num1 +num2;
        break;
    case '-':
        answer = num1-num2;
        break;
    default:
        System.out.println("Invalid Command");
    }
    System.out.println("The result is: " + answer);

调试

输入一个数字,另一个数字和一个操作数:

和错误:

输入不匹配异常

【问题讨论】:

  • char input =(char) in.nextInt(); 行中,使用in.next() 而不是in.nextInt()
  • in.next() 会给你一个String...他正在使用char
  • 我试过 in.next 有错误(不能从 String 转换为 char。
  • k,因此当您使用 nextInt() 时,它会尝试将值作为 int 读取。然后您尝试将其用作字符。这将创建您的 InputMismatchException。为什么不将所有内容都更改为 String(包括 switch 语句中的所有内容),然后按照建议使用 .next()。

标签: java eclipse switch-statement calculator


【解决方案1】:

只需更改此行:char input =(char) in.nextInt(); 换成 char input = in.next().charAt(0)...你就可以开始了!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-22
    • 2011-06-01
    • 2014-06-19
    • 2013-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多