C# 要解决倒置渲染问题?
我写了这段C#来帮助我理解如何使用嵌套for循环来呈现二维数据 下面是输出的样子C# 要解决倒置渲染问题?,c#,for-loop,console,nested,rendering,C#,For Loop,Console,Nested,Rendering,我写了这段C#来帮助我理解如何使用嵌套for循环来呈现二维数据 下面是输出的样子 ████ ███ ██ █ 我想让上面的4个块在底部渲染,基本上是以相反的顺序渲染,这样台阶就会上升。然而,控制台窗口只呈现向下,因此传统的想法是不正确的。下面是我的代码 static void Main(string[] args) { int i = 0; int j = 0; for (i = 0; i < 4; i++) {
████
███
██
█
我想让上面的4个块在底部渲染,基本上是以相反的顺序渲染,这样台阶就会上升。然而,控制台窗口只呈现向下,因此传统的想法是不正确的。下面是我的代码
static void Main(string[] args)
{
int i = 0;
int j = 0;
for (i = 0; i < 4; i++)
{
Console.Write('\n');
for (j = i; j < 4; j++)
{
Console.Write("█");
}
}
Console.ReadKey();
}
最简单的方法是:只需反转内部循环条件并减少计数器,而不是增加它:
for (i = 0; i < 4; i++)
{
Console.Write('\n');
for (j = i; j >= 0; j--)
{
Console.Write("█");
}
}
Console.ReadKey();
对于从右到左的版本:
for (i = 0; i < 4; i++)
{
for(j = 0; j < 4; j++)
{
if(j < 3 - i)
Console.Write(" ");
else
Console.Write("█");
}
Console.Write('\n');
}
Console.ReadKey();
您需要将循环条件从inremant反转为decremant
for (i = 0; i < 4; i++)
{
Console.Write('\n');
for (j = i; j >= 0; j--)
{
Console.Write("█");
}
}
这里有一个应该是:
for (j = 3 - i; j < 4; j++)
{
Console.Write("█");
}
(j=3-i;j<4;j++)的
{
控制台。写入(“█");
}
课程计划
{
常数int维=4;
静态void Main(字符串[]参数)
{
char[]块=新字符[维度];
对于(int j=0;j
我认为这实际上可以做0,1,2,3而不是1,2,3,4?最简单的改变,但如果你编辑它,这是最好的答案。所有代码都按顺序执行。要在顶部写最长的块,你必须先写。除非你想进入图形渲染引擎和poin,否则没有办法最后写,但仍然在顶部t drawing…Soner,谢谢你,这为我指明了我想走的方向,不管这些台阶是怎么下降的,我都希望它们朝另一个方向走。如果我没有说清楚,我很抱歉。我会接受你的想法,然后应用它,看看还能怎么做!再次感谢!@MonteEmerson你想上楼到右边吗?你的问题是顺便说一句,我不清楚。是的,我知道我很抱歉,我修改了它。不,我和@Soner开了个玩笑。我的答案是你想要的-你自己已经写出来了-你需要从写空格开始。谢谢你的帮助Soner!还有一个是上升的步骤;谢谢你的帮助Hugh!@Monte Emerson-看到我的答案了吗
█
██
███
████
for (i = 0; i < 4; i++)
{
Console.Write('\n');
for (j = i; j >= 0; j--)
{
Console.Write("█");
}
}
public static void Main(string[] args)
{
int i = 0;
int j = 0;
for ( i = 0; i < 4; i++ )
{
for ( j = 0; j < 4; j++ )
{
if ( j < 3 - i )
Console.Write(" ");
else
Console.Write("█");
}
Console.Write('\n');
}
Console.ReadKey();
}
for (j = 3 - i; j < 4; j++)
{
Console.Write("█");
}
class Program
{
const int Dimension = 4;
static void Main(string[] args)
{
char[] blocks = new char[Dimension];
for (int j = 0; j < Dimension; j++)
blocks[j] = ' ';
for (int i = 0; i < Dimension; i++)
{
blocks[Dimension - i - 1] = '█';
for (int j = 0; j < Dimension; j++)
Console.Write(blocks[j]);
Console.WriteLine();
}
Console.ReadKey();
}
}