2015-07-21 23 views
0

学习Java,现在我不知道为什么,但是这段代码一直给我提供else if语句的问题。为什么我在Java中的代码给我带来了如此多的麻烦,如果在Jgrasp这个特定的代码行中有else语句?

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!"); 
       } 

     } 
    } 
} 

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

Sherlock.java:24:错误:打破外界开关或循环 休息; ^ 1错误

为什么它会一直坚持我把开关或回路放在外面?

+3

我已经格式化了您的代码。正确格式的代码是编写无错代码的第一步。它使得找到不应该存在的东西变得更容易...就像在'while循环语句和你的第一个'if语句之后的错误分号一样。 –

+0

好眼福尔摩;) – JFPicard

+0

谢谢,克里斯。你真棒。 –

回答

1

从if语句

if (response.equals ("Watson")) 

而while循环

while (tries <=3) 

这些分号都搞乱了你的控制语句解析删除分号。 if语句之后的分号结尾的原因是解析器并不期望由于分号的存在而存在一个身体,因此它并不期望会出现其他的在没有正文的if语句之后的语句。

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

+0

我做了更正,但现在它要求我把上面的行放在循环之外。 –

+0

@Dark_Firaga Wy是否在if语句下添加了一个新循环?删除那个 – SamTebbs33

+0

Tebbs33:哦,哦,哦,我明白了。 –

相关问题