我重现了2048年的比赛。我只有一个问题。当用户输入与移动相对应的字母时,它应该向该方向移动,打印游戏板并停止,直到用户再次输入字母。我使用switch语句来做这件事,但是当用户输入"R“时,循环就会继续。我的意思是,程序打印游戏板,它不会停止。我怎么才能阻止它?
boolean play = true;
while (play == true)
{
boolean canMove = false;
switch(answer)
{
case "U":
canMove = moveUp(board,dimension);
break;
case "D":
canMove = moveDown(board,dimension);
break;
case "R":
canMove = moveRight(board,dimension);
break;
case "L":
canMove = moveLeft(board,dimension);
break;
default:
System.out.println("Invalid input. Try again.");
printBoard(board,dimension);
answer = in.next();
break;
}发布于 2021-01-01 02:26:02
语句play留在true上。当用户输入字符时,语句仍保留为true。由于没有其他用户输入行,程序陷入循环。
在我看来,要解决这个问题,应该在while (play == true)之后添加一行用户输入代码,在每种情况下,都应该在break;之前添加play = false;。
https://stackoverflow.com/questions/65524051
复制相似问题