使用 switch-case-break-default 结构在 Java 中编写被零除异常

问题描述 投票:0回答:1

我正在使用 switch-case-break-default 结构在 Eclipse 中编写一个简单的计算器。不同的运算符以整数形式列出(加法 1、减法 2 等),供用户选择运算符和两个数字的输入。例如,我的除法部分是:

    case 4: result = number1 / number2; System.out.println("Result of division: " + result); break;

几乎所有运算符都可以完美工作,但是当我输入“0”作为除数(数字2)时,我得到的答案是“无穷大”。

因为我想让程序打印“不能除以零!”使用“if...else”消息时,我最初尝试在常规除法区分大小写之上创建一个重复的 case 4 以捕获错误,但每个整数只能有一个大小写分隔。我还尝试制作“case number2 = 0”语句,但错误代码表示必须预定义 case 值。但是,我无法找出不同的行来放置除零异常语句,而不会导致其他操作出现问题。是否有一种方法可以将一个 Case Break 语句嵌套在另一个 Case Break 语句中?我得到的最接近的 case break 语句似乎会捕获异常(但没有正确运行)是:

   case 4: number2 = 0; System.out.println("Cannot divide by zero!"); break result = number1 / number2; System.out.println("Result of division: " + result); break;

对于其他上下文,上面的 4 是来自 Scanner 输入的 int 变量。 result、number1 和 number 2 是用于计算答案的双精度变量。 我还附上了我当前程序代码的屏幕截图。

java计算器程序截图1

java计算器程序截图2

java eclipse switch-statement calculator divide-by-zero
1个回答
0
投票

尝试这些:

case 4:
    if (number2 == 0) {
           System.out.println("Cannot divide by zero!");
    } else {
           result = number1 / number2;
           System.out.println("Result of division: " + result);
    }
    break;

case 4:
        try {
            result = number1 / number2;
            System.out.println("Result of division: " + result);
        } catch (ArithmeticException e) {
           System.out.println("Cannot divide by zero!");
        }
        break;
© www.soinside.com 2019 - 2024. All rights reserved.