2014-02-25 25 views
0

我遇到過這個問題幾次,我的代碼看起來不錯,但它只是不會識別某個字符串。我一直使用else if語句,但其中一些似乎不起作用。我正在製作一個簡單的基於文本的遊戲來突破我迄今在java中學到的東西,這並不是那麼多。請溫和我的無知。 我在這裏做錯了什麼,由於某種原因,它不承認命令「herobrine」,只是去「其他」?否則,如果不能識別特定字符串

用戶輸入: 「中輸入」 輸出: 「進入什麼」 用戶輸入: 「herobrine」 輸出: 「無法識別的命令」

public void scenetwo() { 
System.out.println("You bump into herobrine, what do?"); 

Scanner in = new Scanner(System.in); 
boolean ifone; 
ifone = false; 

String cmdone = in.next(); 
if (cmdone.equalsIgnoreCase("Help")) { 
    Help helpObject = new Help(); 
    helpObject.Helpdisplay(); 

    Scenes ScenesObject = new Scenes(); 
    ScenesObject.scenetwo(); 
} 
    else if (cmdone.equalsIgnoreCase("Enter")){ 
     System.out.println("Enter what?"); 
     String conone = in.next(); 
     if (conone.equalsIgnoreCase("Forest") || conone.equalsIgnoreCase("The forest")){ 
      System.out.println("You're already in the forest, dummy!"); 

      Scenes ScenesObject = new Scenes(); 
      ScenesObject.scenetwo(); 

     } 
     else if (("Herobrine").equalsIgnoreCase(cmdone)) { 
      System.out.println("You pervert, ok, you enter herobrine and his holyness digests you whole. Happy now?"); 


     } 
     else { 
      System.out.println("Command not recognised"); 
     } 


    } 
+1

我看到'conone'作爲輸入和'cmdone '作爲你用來比較的變量。這是你運行的_exact_代碼嗎? – csmckelvey

回答

0

通過else if (("Herobrine").equalsIgnoreCase(conone))

+0

對不起,我浪費你的時間在錯字上,我有點累,你不得不原諒我。不過謝謝你,正在收取tunnelvision。 – user3288942

+0

接受答案然後:P – mangusta

+0

還剩下三分鐘:/和不能再起因cuz我太低lvl:D – user3288942

0

更換else if (("Herobrine").equalsIgnoreCase(cmdone))如果這是您正在執行的確切代碼然後查看用戶輸入的變量,並將其與您在else if中使用的變量進行比較。 此行

else if (("Herobrine").equalsIgnoreCase(cmdone)) 

更改爲

else if (("Herobrine").equalsIgnoreCase(conone)) // Using your input variable. 
0

你正在評估錯誤的變量。我假設你的意思conone而不是cmdone

這裏是你的代碼,與答案無關的部分剪斷了,而一些評論來解釋:

if (cmdone.equalsIgnoreCase("Help")) { 
    // snipped. 
} 
else if (cmdone.equalsIgnoreCase("Enter")){ 
    // If you entered here, you know the cmdone is "Enter" (in some case). 

    System.out.println("Enter what?"); 
    String conone = in.next(); 
    if (conone.equalsIgnoreCase("Forest") || conone.equalsIgnoreCase("The forest")){ 
     // snipped 
    } 
    else if (("Herobrine").equalsIgnoreCase(cmdone)) { 
     // cmdone can't be "herobrine" - it's known to be "enter". 
     // you probably meant to check conone 
    } 
    else { 
     // snipped 
    } 
}