c#我无法从循环中打印消息

时间:2016-07-19 17:23:16

标签: c# loops for-loop while-loop

我正在尝试创建一个包含2个整数的简单程序:数字和宽度。我希望它使用该数字打印具有该宽度的三角形。我应该使用双循环代替,如果不能,我可以按照我的方式完成吗?

class Program
    {
        public static int readInt()
        {
            int result;
            string resultString = Console.ReadLine();
            result = int.Parse(resultString);
            return result;
        }
        static void Main(string[] args)
        {
            int number, width;

            Console.WriteLine("Enter a number: ");
            number = readInt();

            Console.WriteLine("Enter a width: ");
            width = readInt();

            do {
                for (int i = width; i < 0; i--)
                {
                    Console.Write(number);
                    width--;
                    Console.WriteLine();
                }
            } while (width < 0);

            Console.ReadLine();
        }
    }

输出: 数量:7 宽度:4

7777
777
77
7

1 个答案:

答案 0 :(得分:0)

只是为了好玩,这个版本将打印一个居中的矩形

int space = 0;
do
{
    // Prints initial spaces
    for(int x = 0; x < space; x++)
        Console.Write("-");

    // Print the number for the current value of width        
    for (int i = 0; i < width; i++)
        Console.Write(number);

    // Print final spaces - 
    // Not really needed 
    for (int x = 0; x < space; x++)
        Console.Write("-");

    // Start the new line
    Console.WriteLine();

    //Decrease width by one space for each end (2)
    width-=2;

    // Increment the spaces to print before and after
    space++;
} while (width > 0);

完全重写逻辑的一部分,注意Console.WriteLine附加换行符,所以你需要使用Console.Write