[英]Java both If and else statements are executed
我用 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:Java 15
在编写这样的 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");
}
首先:不可能同时执行这两个语句。
那么,¿发生了什么? 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");
}
您应该在后续语句中使用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");
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.