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(" ");
}
}
}
}
我已经有
"*"
了,但记不清数字。
那么,最困难的部分是:打印数字要容易得多。请注意,您打印的数字等于其前面星号数量的两倍。因此,您需要写入的是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
。否则输出将出现故障。这后面是一条新行。