这是我的代码
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");
}
}我今天刚开始编程,正在尝试做一个do while循环。我希望它一直循环,直到用户输入1或2,然后调用next方法(取决于用户输入。如果用户输入1,则调用方法levelOne(),对于2,将调用levelTwo()
发布于 2015-09-03 03:33:37
在输入中,你声明了一个局部的"level“变量。这个级别变量“隐藏”类"level“字段。因此,您接受了level变量,对其赋值,然后丢弃它并退出方法,其中act()方法中的代码不起作用,因为level字段永远为零。修复代码的最好方法是通过去掉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));
}(或者,您可以直接从该方法返回值,但这将需要更多的代码修改。)
https://stackoverflow.com/questions/32353613
复制相似问题