【发布时间】:2022-01-31 07:04:40
【问题描述】:
我是编程初学者。作为练习的一部分,我创建了一个简单的游戏,但在使用out 和err 时遇到了一些问题。下面用部分代码和我的输出截图描述了这个问题:
do{
System.out.print("Press 'r' to play, 'i' to get info and 'q' to quit: ");
input = scan.next().charAt(0);
switch (input){
case 'r':
roundCount++;
System.out.print("A random number is generated for you, guess what it is: ");
int answer = scan.nextInt();
allAnswers.add(answer);
randomNumber = getRandom();
if(isRightAnswer(answer,randomNumber)){
System.out.print("Congrats! that was absolutely right guess, the number was "+randomNumber + ", ");
scoreCount += 5;
rightAnswers.add(answer);
}else{
System.out.print("Oops!, wrong guess, right answer is "+randomNumber +", ");
wrongAnswers.add(answer);
}
break;
case 'q':
System.out.println("Bye Bye!");
break;
case 'i':
printInfo();
break;
default:
System.out.print("Wrong Input --> ");
break;
}
}while(input != 'q');
问题在于out和err的行为不同,如下图所示,一个输出由out生成,另一个由err生成:
System.out 将在“按'r'播放,'i'获取信息和'q'退出:行之前打印“错误输入!->”行: strong>",这正是我想要的
而System.err会在“Press 'r' to play,如下图:”行之后打印“Wrong input! ->”行
这两个流的行为差异背后的真正原因是什么?
【问题讨论】:
-
您有没有想过,如果它们的行为相同,就不需要两种方法?
-
所以我想知道这背后的原因。因为我想使用 err 而不是 out 来显示错误并获得所需的输出
-
当您使用
out获得所需的输出时,为什么要使用err?
标签: java io console output system