C#程序运行后第一行末尾输出多余0是什么原因?
问题成因
你代码中调用NumbersInRow(x)打印完第一行内容后没有主动换行,光标此时仍停留在第一行末尾。紧接着调用NumbersInColumn(y)时,第一次循环i=0会先执行Console.WriteLine(i),这行代码会先把0输出到当前光标所在的第一行末尾,之后才触发换行操作,就是这个逻辑导致第一行末尾多出了多余的0。
修复方案
在NumbersInRow和NumbersInColumn的调用中间加一行Console.WriteLine()主动换行即可,如果你的列编号不需要从0开始,也可以同步把y的初始值改为1,参考修改后的完整代码:
namespace Tabliczka_mnożenia { class Program { static void NumbersInRow(int x) { Console.Write(" "); for (int i = x; i <= 10; i++) { Console.Write(i); Console.Write(" "); } } static void NumbersInColumn(int y) { for (int i = y; i <= 10; i++) { Console.WriteLine(i); Console.Write(" "); } } static void Main(string[] args) { int x = 1; int y = 1; Console.Write(" "); NumbersInRow(x); Console.WriteLine(); // 新增主动换行 NumbersInColumn(y); } } }
内容的提问来源于stack exchange,提问作者saki171
相关产品推荐
相关产品推荐

