有的时候会出现输出顺序乱序
例如:
public static void main(String[] args) throws IOException{
int input = -1;//赋初值
do{
input = getChoice();
switch(input){
case 1:
displayTeam();
break;
case 0:
break;
default:
break;
}
}while(input != 0);
}
private int getChoice() throws IOException {
int input;
do {
stdErr.println();
stdErr.print("[0] Quit\n" + "[1] Display team");
stdErr.flush();
input = Integer.parseInt(stdIn.readLine());
stdErr.println();
if (0 <= input && 1 >= input) {
break;
} else {
stdErr.println("Invalid choice: " + input);
}
} while (true);
return input;
}
private void displayTeam() {
stdOut.println(teamFormatter.formatTeam("team"));
}
我们想要输出菜单之后先打印team 再次输出菜单
但有时会出现 第一次输出菜单之后 接收用户数据之后 先输出了第二次菜单后才打印team信息
那这时 由于我们是单线程程序有两种解决方式
1.在输出team之后 再提示用户按下任意键 返回主菜单
2.设置线程
这里我们主要讲第二点
我们可以在displayTeam函数中利用Thread.sleep来完成
private void displayTeam() {
stdOut.println(teamFormatter.formatTeam(team));
try {
Thread.sleep(2000); // 暂停2秒,确保内容完全打印出来
} catch (InterruptedException e) {
Thread.currentThread().interrupt(); // 重新设置中断标志
stdErr.println("Thread was interrupted: " + e.getMessage());
}
}
不过这里的2000也可以换成其他的数 根据自己想暂停的时间来决定