这是我的代码
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()
答案 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));
}
(或者,您可以直接从方法返回值,但这将需要更多的代码修改。)