C#新手求助:Console.WriteLine语句输出异常问题
控制台输出异常的原因及修复
问题出在Console.ReadKey()上——这个方法默认会把你按下的按键(比如你按的空格)直接显示在控制台里,导致Roll 1: X的输出前面多了一个空格,看起来像是输出错位,并不是Console.WriteLine("Roll 1: " + roll01)本身失效。
修复方法很简单,给Console.ReadKey()加个true参数,让它不回显你按下的按键:
Console.ReadKey(true);
修改后的完整代码:
Random numberGen = new Random(); int roll01 = 0; int roll02 = 1; int attempts = 0; Console.WriteLine("Press spacebar to roll the dice."); while(roll01 != roll02) { Console.ReadKey(true); // 不回显按下的按键 roll01 = numberGen.Next(1, 7); roll02 = numberGen.Next(1, 7); Console.WriteLine("Roll 1: " + roll01); Console.WriteLine("Roll 2: " + roll02 + "\n"); attempts++; }
至于你觉得Roll 2的输出正常,是因为它后面多了一个\n换行,刚好把干扰的视觉效果掩盖了,但实际上Roll 1的输出逻辑是完全没问题的,只是被按键回显的字符打乱了显示而已。
内容的提问来源于stack exchange,提问作者YuriXD
相关产品推荐
相关产品推荐

