好的,Java中的else 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

我把if代码放在每一行中,但它告诉我“Else”的两个条目都是“Else而不是if”。我有点沮丧,我不明白Java是如何认为我没有if的,当它明显存在的时候


我做错了什么,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;
    }