【发布时间】:2017-04-25 12:43:43
【问题描述】:
我的扫描仪/Eclipse 似乎自动运行用户输入。我有一个扫描仪初始化为:
Scanner in = new Scanner(System.in);
菜单如下:
@Override
void update() {
//welcome
System.out.println("-----Welcome to the Pet Game-----");
System.out.println();
System.out.println("1. Play");
System.out.println("2. Help");
System.out.println("3. Dev Mode");
int choice = in.nextInt();
switch(choice){
case 1:
playLoop();
break;
case 2:
helpPage();
break;
case 3:
devMode();
break;
}
}
由于某种原因,它会在此菜单上自动输入 2。并在此菜单上跟随 3:
// main menu
System.out.println("This is Day " + (i+1) + " you have " + dayActions + " Actions left.");
System.out.println("1. View Pet Status");
System.out.println("2. Shop");
System.out.println("3. Skip Action");
System.out.println("4. Play");
System.out.println("5. Feed");
System.out.println("6. Bathroom");
System.out.println("7. Sleep");
int choice = in.nextInt();
System.out.println();
我认为这可能是由于我的 GameState 课程,但我不确定。 游戏状态类:
abstract class GameState {
abstract void update();
protected void pushState(GameState state) {
PetGame.pushState(state);
}
protected void popState() {
PetGame.popState();
}
}
StoreState(这是它要跳转到的类。我在我的代码中找不到对它的任何引用,不知道为什么会出现在这里。)
public class StoreState{
@Override
void update() {
// TODO Auto-generated method stub
}
}
感谢您的帮助。
【问题讨论】:
-
请不要在您的问题得到解决时更新您的问题。这完全改变了最初问题的背景。你这样做并没有给任何人带来任何好处。而是在你原来的问题下面附加一个编辑部分,说明你面临的新问题。
-
@OusmaneMahyDiaw 您的意图通常是正确的,但 “而是在原始问题下方添加一个编辑部分,说明您面临的新问题” 是错误的。必须在新帖子/问题中提出新问题(这已在 meta 上多次询问和讨论,例如:meta.stackoverflow.com/questions/298948/…)
-
@Tom 谢谢,还在学习你看到的系统^^。赞赏。
-
@OusmaneMahyDiaw 不客气。
标签: java