在Java中切换语句错误?

时间:2017-12-13 12:33:30

标签: java switch-statement

我是Java的新手(刚刚今天下午开始),我一直在尝试使用switch语句构建一个简单的条件计算器。

我试图制作的代码非常简单。首先,询问用户的输入(声明),然后是第一个数字和第二个数字。

将根据输入的值进行正确的计算(如果它' Sum'那么它将是第一个数字+第二个数字。& #39; Sub'然后是第一个数字 - 第二个数字,......)

import java.util.Scanner;

class Scalc{
    public static void main(String[] args){

        Scanner input = new Scanner(System.in);

        //Variables//
        double fnum, snum, anum; //(First Number, Second Number, Answer Number)//
        String statement;

        //Input//

        System.out.println("Enter Statement: ");
        statement = input.nextLine();

        System.out.println("Enter First Number: ");
        fnum = input.nextDouble();

        System.out.println("Enter Second Number: ");
        snum = input.nextDouble();

        //Decision//

        switch (statement){

        case "Sum":
            anum = fnum + snum;
            System.out.println(anum);
            break;

        case "Sub":
            anum = fnum - snum;
            System.out.println(anum);
            break;

        case "Mul":
            anum = fnum * snum;
            System.out.println(anum);

        case "Div":
            anum = fnum / snum;
            System.out.println(anum);
            break;

        default:
            System.out.println("STATEMENT UNDEFINED");
            break;

        }
    }
}

现在,它已停留在⊂' ,用于减法。

程序正常运行,但是当我输入' Mul' 时,它不是乘以数字而是减去它。 ' Div' 也是如此。 从技术上讲,代码似乎停留在减法处,并且无法进行任何进一步的处理。

我仍然是一个菜鸟,所以......

任何?

1 个答案:

答案 0 :(得分:4)

您需要在break情况下添加Mul,否则您的下一个case语句会一直执行,直到switchbreak

 case "Mul":
    anum = fnum * snum;
    System.out.println(anum);
 break;