Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java同时执行If和else语句_Java - Fatal编程技术网

Java同时执行If和else语句

Java同时执行If和else语句,java,Java,我用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(); S

我用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

在编写这样的if语句时,您需要将它们与elseif链接在一起,基本上是一个else for every if和一个final 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");
    }

在编写这样的if语句时,您需要将它们与else-if链接在一起,基本上是一个else-for-every-if和一个final-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");
    }

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

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

您需要一个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");
}

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

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

您需要一个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");
}
对于后续语句,应使用else 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");
}
对于后续语句,应使用else 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");
}

是的,谢谢你,还有所有回答的人。我是Java新手,以前从未遇到过类似的问题是的,谢谢,所有回答我的人。我是Java新手,在Java命名约定使用大写字母开始类名之前,我从未遇到过类似的问题;方法、参数和变量以小写字母secondNum开头;方法、参数和变量以小写字母secondNum开头。