C# 图形打印问题:如何将单入参打印代码修改为支持双入参
调整方案
你现有代码的竖线高度是和当前横线长度绑定的,改为双入参只需拆分这两个逻辑即可,两个入参分别对应初始横线长度、每段竖线的统一高度,具体调整如下:
- 将方法入参从1个改为2个,分别赋值给初始横线长度变量
currentLineLen和竖线高度变量verticalHeight - 把原代码中竖线循环的上限
input - 1替换为第二个入参verticalHeight,解除竖线高度和当前横线长度的绑定关系 - 其余原有横线长度迭代、右偏移量计算的逻辑无需修改
调整后完整代码
// 两个入参分别为:初始横线长度initLineLen、每段竖线高度verticalHeight void PrintShape(int initLineLen, int verticalHeight) { int currentLineLen = initLineLen; int offset = currentLineLen; while (currentLineLen > 0) { // 打印当前段横线 for (int z = 1; z <= currentLineLen; ++z) { Console.Write("-"); } Console.WriteLine(); // 打印当前段下方的竖线,高度取第二个入参 for (int i = 1; i <= verticalHeight; ++i) { for (int z = 1; z <= offset; ++z) { if (z != offset) { Console.Write(" "); } else { Console.WriteLine("|"); } } } // 补全下一段横线的前置空格 for (int j = 1; j < offset; j++) { Console.Write(" "); } // 更新下一段横线长度和偏移位置 currentLineLen = currentLineLen - 2; offset = offset + currentLineLen - 1; } }
测试示例
调用PrintShape(5, 2)的输出效果:
----- | | --- | | -
内容的提问来源于stack exchange,提问作者dada_d
相关产品推荐
相关产品推荐

