2015-01-27 3 views
-8

저는 Java를 처음 접했고 while 루프는 실제로 이해하지 못합니다. '전사 클래스를 선택하고 캐릭터 선택 상자로 돌아가고 싶지 않다면'라고 말하고 싶습니다.while 루프를 이해하지 못합니다.

while (chooseCharacter = true){ 

     String[] Character= {"Kitty", "Archer","Tank","Battlemage","Warrior"}; 
     int characterSelect = JOptionPane.showOptionDialog (null, "Choose your class", "Class Selection", JOptionPane.YES_NO_OPTION, JOptionPane.PLAIN_MESSAGE, null, Character, "Warrior"); 

     if(characterSelect == 4){ 
      JOptionPane.showMessageDialog(null, "Warrior" + "\n" + "Attack 1: Slash" + "\n" + "10 Damage :: 98% Accuracy" + "\n" + "Attack 2: Spin Attack" + "\n" + "25 Damage :: 67% Accuracy"); 
      String[] warriorChar= {"No", "Yes"}; 
      int warrior = JOptionPane.showOptionDialog(null, "Would you like to choose Warrior as your class?", "Choose this class?", JOptionPane.YES_NO_OPTION, JOptionPane.PLAIN_MESSAGE, null, warriorChar, "No"); 
      if(warrior == 0){ 
       chooseCharacter = true; 
      } 
      if(warrior == 1){ 
       chooseCharacter = false; 
      } 
     } 

답변

5
while(chooseCharacter = true) 
         ↑ 

당신은 비교하지 할당하고 있습니다. 당신이 작성해야 : 루프가 while(true)에 해당하므로

while(chooseCharacter) 

자바에서, 할당의 표현의 할당 값을 반환합니다. 아주

while(someBoolean) 

대신

while(someBoolean == true/false) 

의 당신이했던 것과 같은 실수로부터 당신을 보호하고, 당신이 경우도, 논리적 인 방법에 대해 생각할 수있는 쓰기 권장

if(something == true)을 작성하는 것은 "값이 true인지 묻는 것과 같습니다. 사실입니다."

2

사용

while (chooseCharacter == true){ 
} 

또는

while (chooseCharacter){ 

} 

== 비교하는 연산자이고, = 할당위한

관련 문제