2014-04-14 6 views
2

이 코드는 내가 만들고있는 블랙 잭 게임에서 발췌 한 것입니다. 내가 무엇을 입력하든 프로그램은 절대 루프에서 벗어나지 않습니다. http://puu.sh/87KZk.pngJava의 Do/While 루프 관련 문제

어떤 도움을 주시면 감사하겠습니다 : 일반적으로 어떻게됩니까

boolean bool = true; 
do{ 
    Scanner kb = new Scanner(System.in); 
    String choice = kb.next(); 
    if(choice == "Hit" || choice == "hit") { 
     String action = "hit"; 
     bool = false; 
    } else if(choice == "Stay" || choice == "stay") { 
     String action = "stay"; 
     bool = false; 
    } else { 
     System.out.println("Do not recognize response. Retry."); 
    } 
} while (bool == true); 

. 감사!

+4

'=='를 사용하여 Java에서 문자열을 비교하지 마십시오. http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java – helderdarocha

답변

5

문자열을 ==와 비교합니다. Java에서는 문자열을 .equals()과 대신 비교합니다.

당신은 같은 것을 할 수 있습니다 : 나는 또한 선명도에 대한 코드의 일부를 포맷

boolean bool = true; 
do { 
    Scanner kb = new Scanner(System.in); 
    String choice = kb.next(); 
    if(choice.equals("Hit") || choice.equals("hit")) { 
     String action = "hit"; 
     bool = false; 
    } else if(choice.equals("Stay") || choice.equals("stay")) { 
     String action = "stay"; 
     bool = false; 
    } else { 
     System.out.println("Do not recognize response. Retry."); 
    } 
} while (bool == true); 

. 아래 의견에 제안 된대로 equalsIgnoreCase을 사용하여 대소 문자에 관계없이 문자열을 비교할 수 있습니다.

희망이 도움이됩니다.

+2

참조하십시오. ['equalsIgnoreCase'] (http://docs.oracle.com/javase/7 /docs/api/java/lang/String.html#equalsIgnoreCase%28java.lang.String%29) – SlightlyCuban

+0

내 답변에 제안을 추가했습니다. – nmenego

+0

감사합니다. 가능한 한 빨리 정답으로 표시하겠습니다. – Danappelxx