我不明白while循环

-8 java loops while-loop

我是Java新手,我不太了解while循环.我想说'如果你不想选择Warrior类,那么回到字符选择框.

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;
            }
        }
Run Code Online (Sandbox Code Playgroud)

Mar*_*oun 5

while(chooseCharacter = true)
                      ? 
Run Code Online (Sandbox Code Playgroud)

你是分配,而不是比较.你应该写:

while(chooseCharacter)
Run Code Online (Sandbox Code Playgroud)

在Java中,赋值的表达式返回赋值,因此循环等效于while(true).

请注意,建议您编写

while(someBoolean)
Run Code Online (Sandbox Code Playgroud)

代替

while(someBoolean == true/false)
Run Code Online (Sandbox Code Playgroud)

它可以保护你免受你所做的那样的错误,也可以用逻辑的方式思考它,如果你写if(something == true)它就像问"价值是否真实......是真的".