有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Java同时执行If和else语句

我用java编写了一个小控制台应用程序,它由If和else语句组成
在输出端,执行两个正确的If和else语句
如何修复?有什么问题吗

public static void main(String[] args) {
    Scanner in = new Scanner(System.in);

    System.out.println("Enter a first number");
    int FirstNum = in.nextInt();

    System.out.println("Enter an Operator");
    String Operator = in.next();

    System.out.println("Enter a second number");
    int SecondNum = in.nextInt();

    try{
        if(Operator.equals("+")){
            System.out.println(FirstNum + SecondNum);
        }
        if (Operator.equals("-")){
            System.out.println(FirstNum - SecondNum);
        }
        if (Operator.equals("*")){
            System.out.println(FirstNum * SecondNum);
        }
        if (Operator.equals("/")) {
            System.out.println(FirstNum / SecondNum);
        }
        else {
            System.out.println("invalid Operator");
        }
    }
    catch (Exception e){
        System.out.println("Invalid Operator or number");
    }
}

}

输出示例:

Enter a first number
1
Enter an Operator
+
Enter a second number
2
3
invalid Operator

Process finished with exit code 0

JDK:java15


共 (3) 个答案

  1. # 1 楼答案

    在编写类似这样的if语句时,您需要将它们与else if链接在一起,基本上每个if都有一个else,最后一个else。发生的事情是你在说“如果这个,如果这个,如果这个”等等。它正在测试最后一个if,因为它不是正斜杠,所以你进入了else

    试试这个:

        if(Operator.equals("+")){
            System.out.println(FirstNum + SecondNum);
        }
        else if (Operator.equals("-")){
            System.out.println(FirstNum - SecondNum);
        }
        else if (Operator.equals("*")){
            System.out.println(FirstNum * SecondNum);
        }
        else if (Operator.equals("/")) {
            System.out.println(FirstNum / SecondNum);
        }
        else {
            System.out.println("invalid Operator");
        }
    
  2. # 2 楼答案

    首先:不可能同时执行这两条语句

    那么,发生了什么事?结构if/else仅为最后两行。也就是说:如果操作符不是/,代码将执行else语句

    您需要一个if/else if/else语句

    if(Operator.equals("+")){
        System.out.println(FirstNum + SecondNum);
    }
    else if (Operator.equals("-")){
        System.out.println(FirstNum - SecondNum);
    }
    else if (Operator.equals("*")){
        System.out.println(FirstNum * SecondNum);
    }
    else if (Operator.equals("/")) {
        System.out.println(FirstNum / SecondNum);
    }
    else {
        System.out.println("invalid Operator");
    }
    
  3. # 3 楼答案

    您应该在后续语句中使用else if。如果只使用if ... if ... if ... else,那么基本上每个if都是单独计算的,只有最后的if else作为一个或另一个放在一起

    try{
        if(Operator.equals("+")){
            System.out.println(FirstNum + SecondNum);
        }
        else if (Operator.equals("-")){
            System.out.println(FirstNum - SecondNum);
        }
        else if (Operator.equals("*")){
            System.out.println(FirstNum * SecondNum);
        }
        else if (Operator.equals("/")) {
            System.out.println(FirstNum / SecondNum);
        }
        else {
            System.out.println("invalid Operator");
        }
    }
    catch (Exception e){
        System.out.println("Invalid Operator or number");
    }