我对java编码相当新,但错误是如果我输入正确的答案或错误的答案,它仍然表示正确和不正确。
import java.util.Scanner;
public class MathTest {
public static void main(String[] args) {
Scanner user_input = new Scanner(System.in);
System.out.println("What is 5 times 4? ");
String question;
question = user_input.next();
if (question.equals(20));
System.out.println("Correct!");
if (!"20".equals(question));
System.out.println("Incorrect!");
}
}
答案 0 :(得分:2)
从if语句的末尾删除分号。它被视为空行。
甚至可以使用明确的大括号,例如if(foo) { bar(); }
。
答案 1 :(得分:1)
你的条件是否有点错误,应该这样做:(未经测试)
import java.util.Scanner;
public class MathTest {
public static void main(String[] args) {
Scanner user_input = new Scanner(System.in);
System.out.println("What is 5 times 4? ");
String question;
question = user_input.next();
if (question.equals("20"))
System.out.println("Correct!");
if (!"20".equals(question))
System.out.println("Incorrect!");
}
}
在原始代码中,您有;在if的结尾。这告诉编译器它是行的结尾。因此,为什么两个“正确!”和“不正确!”正在展示。因为它们不是条件声明的一部分。
希望这有帮助! :)
答案 2 :(得分:1)
分号结束if语句,因此每个if下面的语句将始终执行。另外这个:if(question.equals(20))应该是if(question.equals(“20”)),因为用户输入是String并且你想要比较字符串。
代码应如下所示:
public class MathTest {
public static void main(String[] args) {
Scanner user_input = new Scanner(System.in);
System.out.println("What is 5 times 4? ");
String question;
question = user_input.next();
if (question.equals("20")) {
System.out.println("Correct!");
}
if (!"20".equals(question)) {
System.out.println("Incorrect!");
}
}
}
值得一提的是,扫描仪还有其他方法来读取用户输入,例如:你可以像这样读取Integer而不是String:Integer answer = answer = user_input.nextInt();然后你只需比较整数:
if (answer == 20) {
System.out.println("Correct!");
} else {
System.out.println("Incorrect!");
}
答案 3 :(得分:1)
找到你的解决方案兄弟....... 提示:对于String,使用“20”而不是20
公共类解决方案{
public static void main(String[] args) {
Scanner user_input = new Scanner(System.in);
System.out.println("What is 5 times 4? ");
String question;
question = user_input.next();
if (question.equals("20")){
System.out.println("Correct!");
}else{
System.out.println("Incorrect!");
}
}
}
答案 4 :(得分:0)
那是因为你在if之后有一个分号。删除它,最好在println语句周围放置花括号,以显示哪些语句属于if。现在,你已经写了
if (...); a;
相当于
if (...)
{
}
a;
虽然你的意思是
if (...)
{
a;
}
答案 5 :(得分:0)
简单明了
Scanner user_input = new Scanner(System.in);
System.out.println("What is 5 times 4? ");
System.out.println(user_input.next().equals("20") ? "Correct" : "Incorrect");