Greenfoot循环不工作

时间:2015-09-02 12:48:05

标签: greenfoot

这是我的代码

  import greenfoot.*;
  import javax.swing.JOptionPane;

    public class tableTester extends Actor
    {
    String userInput;
    int level;
    public void act() 
    {
        input();
        if(level == 1) {
            levelOne();
        } else {
            levelTwo();
        }
    }

public void input()
{
    do{
        userInput = JOptionPane.showInputDialog("Press 1 to play level 1 \nPress 2 to play level 2");
        Integer level = Integer.parseInt(userInput);
    }while((level <= 0) || (level >= 3));
}

public void levelOne()
{
    System.out.println("Level 1");
}

public void levelTwo()
{
        System.out.println("Level 2");
    }
}

我今天刚刚开始编程,我正在尝试做一个while循环。我希望它循环,直到用户输入1或2并调用下一个方法(取决于用户输入。如果用户输入一个然后调用方法levelOne(),则调用2 levelTwo()

1 个答案:

答案 0 :(得分:0)

在输入中,您要声明本地&#34; level&#34;变量。这个级别变量&#34;阴影&#34;班级&#34; level&#34;领域。因此,您接受级别变量,分配它,然后丢弃它并退出方法,其中act()方法中的代码无效,因为级别字段永远为零。修复代码的最好方法是通过敲除Integer部分来避免变量声明:

public void input()
{
    do{
        userInput = JOptionPane.showInputDialog("Press 1 to play level 1 \nPress 2 to play level 2");
        level = Integer.parseInt(userInput);
    }while((level <= 0) || (level >= 3));
}

(或者,您可以直接从方法返回值,但这将需要更多的代码修改。)