【问题标题】:I don't understand while loops [closed]我不明白while循环[关闭]
【发布时间】:2015-03-25 20:53:06
【问题描述】:

我是 Java 新手,我不太了解 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;
            }
        }

【问题讨论】:

    标签: java loops while-loop


    【解决方案1】:
    while(chooseCharacter = true)
                          ↑ 
    

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

    while(chooseCharacter)
    

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

    注意,非常推荐写

    while(someBoolean)
    

    而不是

    while(someBoolean == true/false)
    

    它可以保护你避免像你所做的那样的错误,并且还可以以逻辑的方式思考它,如果你写if(something == true),就像在问“这个值是否为真......是否为真”。

    【讨论】:

      【解决方案2】:

      使用

      while (chooseCharacter == true){
      }
      

      while (chooseCharacter){
      
      }
      

      == 是比较运算符,= 是赋值

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-08-16
        • 2022-12-10
        • 2012-01-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多