2014-02-25 3 views
0

몇 번이나이 문제가 발생했습니다. 코드가 좋지만 특정 문자열을 인식하지 못합니다. 나는 항상 else if 문을 사용하지만 일부는 작동하지 않는 것으로 보인다. 나는 지금까지 자바에서 배운 것들을 excersise하기 위해 간단한 텍스트 기반의 게임을 만들고있다. 제 noobyness에 친절하십시오. 내가 여기서 잘못하고있는 것은 웬일인지 "herobrine"명령을 인식하지 못하고 "else"로 이동한다는 것입니다.else if 특정 문자열을 인식하지 못합니다.

사용자 입력 : 사용자 입력 "무엇을 입력": 출력을 "입력" "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

내가 귀하의 의견과'cmdone로'conone' 참조 '를 비교를 위해 사용하는 변수로 사용하십시오. 이 코드가 실행중인 _exact_ 코드입니까? – csmckelvey

답변

0

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

+0

오타에 시간을 낭비해서 죄송합니다. 조금 피곤하면 실례합니다. 그래도 고맙습니다, 터널 비전이 나왔습니다. – user3288942

+0

다음 대답을 수락 : P – mangusta

+0

아직 3 분 남았습니다 :/그리고 아직 너무 사촌 내가 할 수 없어 lvl : D 조 – user3288942

0

으로 else if (("Herobrine").equalsIgnoreCase(cmdone)) 교체 "명령이 인식되지" 실행중인 정확한 코드가 사용자의 입력에 사용하는 변수를보고 else if에서 사용하는 변수와 비교하십시오. 당신은 잘못된 변수를 평가하고

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

이 줄

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

을 변경 . 나는 당신이 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 
    } 
} 
관련 문제