2015-07-21 43 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:哦,哦,哦,我明白了。 –

相關問題