C#程序调试:如何实现每输出20个ID后准确换行?
调试C# ID生成程序的换行问题
需求说明
生成并显示公司所有可能的ID编号(ID格式为一个字母后跟两位数字,例如A00或Z99),要求每输出20个ID后换行。
我修改后的代码
// Program displays every possible ID number for a company // ID number is a letter, followed by a two-digit number // For example -- A00 or Z99 // Go to a new display line after every 20 IDs using static System.Console; class DebugFive3 { static void Main() { char letter; int number; int row = 0; const int LOW = 0; const int HIGH = 99; const int NUMINROW = 20; for (letter = 'A'; letter <= 'Z'; ++letter) for (number = LOW; number <= HIGH; ++number) { ++row; if (row > NUMINROW) { row = 0; WriteLine(); } Write("{0}{1} ", letter, number); } } }
问题描述
当前代码首行能按20个ID换行,但后续行需要输出21个ID才会换行,不符合需求。希望保留已声明的变量和常量,以最小改动修复问题。
原练习代码
// Program displays every possible ID number for a company // ID number is a letter, followed by a two-digit number // For example -- A00 or Z99 // Go to a new display line after every 20 IDs using static System.Console; class DebugFive3 { static void Main() { char letter; int number; const int LOW == 0; const int HIGH == 99; const int NUMINROW = 20; for(letter = 'A'; letter < 'Z'; ++letter) for(number = LOW; number > HIGH; ++number) { if(number % NUMINROW0) WriteLine(); Write("{0}{{1} ", letter, number.ToString("D2")); } } }
修复方案
只需调整row计数、换行判断和ID输出的顺序,同时补全数字的两位格式化,即可解决问题:
// Program displays every possible ID number for a company // ID number is a letter, followed by a two-digit number // For example -- A00 or Z99 // Go to a new display line after every 20 IDs using static System.Console; class DebugFive3 { static void Main() { char letter; int number; int row = 0; const int LOW = 0; const int HIGH = 99; const int NUMINROW = 20; for (letter = 'A'; letter <= 'Z'; ++letter) for (number = LOW; number <= HIGH; ++number) { // 先输出格式化后的ID Write("{0}{1} ", letter, number.ToString("D2")); // 输出后再递增计数 ++row; // 当计数达到20时换行并重置计数 if (row == NUMINROW) { WriteLine(); row = 0; } } } }
修复逻辑说明
- 调整操作顺序:将ID输出放在
row计数递增之前,确保每输出一个ID后再统计数量,避免计数提前导致的换行时机错误。 - 修正判断条件:将
row > NUMINROW改为row == NUMINROW,确保每输出满20个ID就立即换行,而非等第21个ID输出前才换行。 - 补全数字格式化:添加
ToString("D2")保证数字始终显示为两位(如0显示为00,9显示为09),符合需求中的ID格式要求。
内容的提问来源于stack exchange,提问作者Dynamite Jarrod
相关产品推荐
相关产品推荐

