为什么我的Java代码在jgrasp中使用if特定代码行中的if else语句给我带来了很多麻烦?

时间:2015-07-21 22:29:59

标签: java pc jgrasp

学习Java,现在我不知道为什么,但是这段代码一直给我else if语句的问题。

public class Sherlock
{
    public static void main(String[] args) 
    {
        String answer = "Watson";
        String response = "";
        int tries = 0;
        Scanner input = new Scanner(System.in);
        while (tries <=3); 
        {
            System.out.print("Enter the name of Sherlock's partner, and     dear friend. ");
            response = input.nextLine();
            tries++;

            if (response.equals ("Watson"))
            while (tries<= 3) 
            {
                System.out.println("Yes, that is right, Barrel Rider.");
                break;
            }
            else if (tries == 3)
            {
                System.out.println("Ooooh, sorry kid but it looks like you are     S.O.L.");
                break; 
            }
               else
               while (tries <= 3)
              {
           System.out.println("Sorry, try again!");
              }

        }
    }
}

if else语句错误已经或多或少地解决了,但现在我得到了一个不同的错误:

Sherlock.java:24:错误:在交换机或循环外部中断 打破; ^ 1错误

为什么它一直坚持我把开关放在开关或循环之外?

1 个答案:

答案 0 :(得分:1)

从if语句

中删除分号
if (response.equals ("Watson"))

和while循环

while (tries <=3)

这些分号正在弄乱你的控制语句的解析。 if语句之后的分号混淆的原因是解析器由于分号的存在而不期望有一个正文,因此它不会期望有其他的在没有正文的if语句之后的声明。

将来,我建议您确保已检查代码的有效语义和语法。您将从YouTube上的任何优秀教程中学习有关控制语句的基础知识。