好的,Java中的else if方法仍然有问题
我把if代码放在每一行中,但它告诉我“Else”的两个条目都是“Else而不是if”。我有点沮丧,我不明白Java是如何认为我没有if的,当它明显存在的时候好的,Java中的else if方法仍然有问题,java,Java,我把if代码放在每一行中,但它告诉我“Else”的两个条目都是“Else而不是if”。我有点沮丧,我不明白Java是如何认为我没有if的,当它明显存在的时候 我做错了什么,Java认为我没有生成if代码?如果你想要一个带有空体的if语句,你需要在Java中使用大括号。老实说,您的代码中应该有更多的大括号。我强烈建议阅读Java编码惯例 例如: being: SherlockHolmes.java:16: error: 'else' without 'if' else
我做错了什么,Java认为我没有生成if代码?如果你想要一个带有空体的
if
语句,你需要在Java中使用大括号。老实说,您的代码中应该有更多的大括号。我强烈建议阅读Java编码惯例
例如:
being: SherlockHolmes.java:16: error: 'else' without 'if'
else
^
SherlockHolmes.java:24: error: 'else' without 'if'
else if(tries == 3)
^
2 errors
您有许多语法错误
首先,不能将if附加到while块。第二,如果您试图使响应不等于“Watson”,则使用“not equal to”操作符,它只是“!”(感叹号)。控制流由
if(condition){}
必须使用一次,并且必须是第一个
else if(condition){}
任意次数,可选,必须介于else
和if
之间
else{}
可选,如果包含,则必须是最后一个并使用一次
大括号和顺序是强制性的。在Java中,这是最佳实践,通常需要在所有块周围放置大括号:if
,while
,for
。您需要知道的另一件事是,while循环与条件语句不同。它们不能附加到else
或else if
语句。因此,您的while循环需要更改为
if (response.equals("Watson")) {
}
else while (tries <= 3) {
// loop body
}
while(尝试总是使用{}是Java编码的最佳实践
括号表示if
或else
块。我强烈建议您开始在分支机构周围使用括号,并获取IDE来格式化代码-这样您就可以看到当前代码无效的原因。虽然不是严格必要的,但我建议您始终跟踪if
或else{}
块进行de>。这有助于避免以后出现许多问题(以及您当前遇到的问题和一些不太明显的问题)。实际上,最大的问题是:为什么不从基础开始。例如:将代码放入一个方法中。可以直接将{}
块放入类中(这被称为“初始值设定块”);但对于新手来说,这很可能不是您想要的。相反,您希望研究Java类的总体结构。(提示:添加一个main方法)。然后开始编写几行代码。当您认为“这看起来不错;应该编译”时;然后运行编译器。重复。而不是编写20、30行代码…然后尝试分离其中的语法错误。@Jägermeister:伙计,我正在学习基础知识。这是Udemy.com上的一个类的代码,我严格遵循代码,然后仍然发现所有这些错误。因此,我进行了编辑。但是,我最终还是出现了错误。我不是支架的数量,而是支架的位置。
if (response.equals("Watson"))
else while (tries <= 3)
if (response.equals("Watson")) {
}
else while (tries <= 3) {
// loop body
}
while (tries <= 3) {
...
}
System.out.print("Enter the name of Sherlock's partner, and dear friend.");
response = input.nextLine();
tries++;
while (tries <= 3) {
if (response.equals("Watson")) {
System.out.println("Yes, that's right, Barrel Rider.");
}
else {
System.out.print("Ooooh, sorry kid! Try again!");
break;
}
if (tries == 3) { // If the while loop finishes
System.out.println("Ooooo, sorry kid. But, it looks like you're S.O.L!");
break;
}