C#模式;用于循环

本文关键字:循环 用于 模式 | 更新日期: 2023-09-27 18:24:42

开发一个显示以下模式的C#控制台应用程序。使用for循环(提示:嵌套)生成模式。所有星号应通过形式为Console.Write("*");的单个语句显示,该语句显示指向示例中所示数值的星号。依次记下每个数字的顺序。您需要推断数字是如何计算的(它们是计算的结果),以及该计算将被放置在循环结构中的何处。您不能将显示的数字硬编码到循环中。

我已经有了"*",但记不清数字。

这两种模式看起来应该类似于以下内容:

*2
**4
***6
****8
*****10
******12
*******14
********16
*********18
**********20
{
        for (int row = 0; row < 10; row++)            
            {
                Console.Write("  ");
                for (int col = 0; col <= row; col++)
                {
                    Console.Write("*");
                    Console.Write(" ");
                }
                Console.WriteLine(" ");
            }
        Console.WriteLine(" ");
        for (int row = 0; row < 10; row++)
        {
            Console.Write("  ");
            for (int col = 10; col > row; col--)
            {
                Console.Write("*");
                Console.Write(" ");
            }
            Console.WriteLine(" ");
        }
    }
}

}

C#模式;用于循环

我已经有"*"了,但记不清数字。

那么,最困难的部分是:打印数字要容易得多。请注意,您打印的数字等于其前面星号数量的两倍。因此,您需要写入的是2*n,其中n是写入星号的循环中的限制(即代码中的row加1)。

您可以将打印与写入行尾标记相结合:替换

Console.WriteLine(" ");

带有

Console.WriteLine(2*(row+1));

以获得期望的结果。

我决定把对dasblinkenlight的回答的评论变成一个自己的答案:

for(int row = 0; row < 10; row++) {
    for(int col = 0; col <= row; col++) {
        Console.Write("*");
    }
    Console.Write("{0}{1}", (row+1)*2, Environment.NewLine);
}   

请注意,由于循环从索引0开始,所以显示在行末尾的行数计算为(row+1)*2。否则输出将出现故障。这后面是一条新行。