Java 为什么我的代码不能正常工作?
我对编码有点陌生。所以,我想知道为什么我的代码不能正常工作?如果您运行代码,它会询问您正确的值,然后打印您是否正确。但它也会打印出“else”语句Java 为什么我的代码不能正常工作?,java,Java,我对编码有点陌生。所以,我想知道为什么我的代码不能正常工作?如果您运行代码,它会询问您正确的值,然后打印您是否正确。但它也会打印出“else”语句 package MyFirstProject; import java.util.Scanner; public class MyFirstProject { public static void main(String[] args) { int answer; Scanner scanner = new
package MyFirstProject;
import java.util.Scanner;
public class MyFirstProject {
public static void main(String[] args) {
int answer;
Scanner scanner = new Scanner(System.in);
System.out.println("What is 5 + 5");
answer = scanner.nextInt();
if(answer == 10){
System.out.println("You are correct!");
}if(answer == 9){
System.out.println("You were close! Try again!");
}if(answer == 11){
System.out.println("You were close! Try again!");
}
else{
System.out.println("You are wrong! Try again!");
}
}
}
问题在于if语句。Else与最后一个if语句连接。每当应答值不是“11”时,它都会触发。您需要使用“else if”,如下所示
if(answer == 10){
System.out.println("You are correct!");
}else if(answer == 9){
System.out.println("You were close! Try again!");
}else if(answer == 11){
System.out.println("You were close! Try again!");
}
else{
System.out.println("You are wrong! Try again!");
}
问题在于if语句。Else与最后一个if语句连接。每当应答值不是“11”时,它都会触发。您需要使用“else if”,如下所示
if(answer == 10){
System.out.println("You are correct!");
}else if(answer == 9){
System.out.println("You were close! Try again!");
}else if(answer == 11){
System.out.println("You were close! Try again!");
}
else{
System.out.println("You are wrong! Try again!");
}
使用else
public static void main(String[] args) {
int answer;
Scanner scanner = new Scanner(System.in);
System.out.println("What is 5 + 5");
answer = scanner.nextInt();
if(answer == 10){
System.out.println("You are correct!");
}else if(answer == 9){
System.out.println("You were close! Try again!");
}else if(answer == 11){
System.out.println("You were close! Try again!");
}
else{
System.out.println("You are wrong! Try again!");
}
}
使用else
public static void main(String[] args) {
int answer;
Scanner scanner = new Scanner(System.in);
System.out.println("What is 5 + 5");
answer = scanner.nextInt();
if(answer == 10){
System.out.println("You are correct!");
}else if(answer == 9){
System.out.println("You were close! Try again!");
}else if(answer == 11){
System.out.println("You were close! Try again!");
}
else{
System.out.println("You are wrong! Try again!");
}
}
原因是在第二和第三个IF之前,您缺少了其他IF
if(answer == 10){
System.out.println("You are correct!");
}else if(answer == 9){
System.out.println("You were close! Try again!");
}else if(answer == 11){
System.out.println("You were close! Try again!");
}
else{
System.out.println("You are wrong! Try again!");
}
在你的情况下,第三个IF不是真的,所以else被执行。使用“我的修复”和10作为输入值,第一个IF将为true,然后所有剩余的IF将不会执行。原因是在第二个IF和第三个IF之前缺少其他IF
if(answer == 10){
System.out.println("You are correct!");
}else if(answer == 9){
System.out.println("You were close! Try again!");
}else if(answer == 11){
System.out.println("You were close! Try again!");
}
else{
System.out.println("You are wrong! Try again!");
}
在你的情况下,第三个IF不是真的,所以else被执行。使用my fix和10作为输入值,首先IF将为true,然后将不执行所有剩余值。如果:
if(answer == 10){
System.out.println("You are correct!");
} else if(answer == 9){
System.out.println("You were close! Try again!");
} else if(answer == 11){
System.out.println("You were close! Try again!");
} else{
System.out.println("You are wrong! Try again!");
}
在您的示例中,else与最后一个if语句匹配,因此它不是“最后的选择”。您需要将所有的if都抓取到一个链中,以便else将匹配所有非if匹配的情况
或使用开关:
switch(answer):
case 10:
System.out.println("You are correct!");
break;
case 9:
case 11:
System.out.println("You were close! Try again!");
break;
default:
System.out.println("You are wrong! Try again!");
在以下情况下,您需要将if替换为else:
if(answer == 10){
System.out.println("You are correct!");
} else if(answer == 9){
System.out.println("You were close! Try again!");
} else if(answer == 11){
System.out.println("You were close! Try again!");
} else{
System.out.println("You are wrong! Try again!");
}
在您的示例中,else与最后一个if语句匹配,因此它不是“最后的选择”。您需要将所有的if都抓取到一个链中,以便else将匹配所有非if匹配的情况
或使用开关:
switch(answer):
case 10:
System.out.println("You are correct!");
break;
case 9:
case 11:
System.out.println("You were close! Try again!");
break;
default:
System.out.println("You are wrong! Try again!");
原因是,例如
answer == 10 // YES - It'll print "You are correct!"
answer == 9 // No - Skip to the next If block
answer == 11? // No - skip to the else and print "You are wrong! Try again!"
因此,确保它只检查一个块并打印正确消息的正确方法是:
if(answer == 10){
System.out.println("You are correct!");
} else if(answer == 9){
System.out.println("You were close! Try again!");
} else if(answer == 11){
System.out.println("You were close! Try again!");
} else{
System.out.println("You are wrong! Try again!");
}
原因是,例如
answer == 10 // YES - It'll print "You are correct!"
answer == 9 // No - Skip to the next If block
answer == 11? // No - skip to the else and print "You are wrong! Try again!"
因此,确保它只检查一个块并打印正确消息的正确方法是:
if(answer == 10){
System.out.println("You are correct!");
} else if(answer == 9){
System.out.println("You were close! Try again!");
} else if(answer == 11){
System.out.println("You were close! Try again!");
} else{
System.out.println("You are wrong! Try again!");
}
在每个
if
之后都需要else
s,而不仅仅是最后一个。如果(…)像switch语句一样构造它,则缺少一堆else。是的,否则的话,如果是你想要的。也就是说,我们通常在像Bignerdranch这样的对noobie友好的网站上看到类似的情况。请注意,您需要else
s的唯一原因是最后的大毯子else
。没有它们也没关系,因为答案不会重叠。你需要在每个if
之后加上else
s,而不仅仅是最后一个。如果(…)
你像switch语句一样构造它,你就缺少了一堆else。是的,否则的话,如果是你想要的。也就是说,我们通常在像Bignerdranch这样的对noobie友好的网站上看到类似的情况。请注意,您需要else
s的唯一原因是最后的大毯子else
。没有它们也没关系,因为答案没有重叠。