我很难理解如何掌握循环是如何工作的,并不是我不知道他们做了什么,但是如果有意义的话,我在理解如何将它们放在一起时遇到问题。
例如,在我提供的代码中,为什么我需要<
比a
?
和为什么j
需要为<
比i
使输入组成一个三角形?
为什么我需要先放置Console.Write("*")
,为什么Console.WriteLine("")
需要在最后形成三角形?
我希望有人可以用这种简单的理解来帮助我,因为到目前为止,我有点使用我的记忆,我实际上并不理解为什么所有这些都是按照形成三角形的方式构建的。
(我的命令是使用用户正在创建的输入创建一个形成三角形的静态代码,例如当我使用这样的函数时:triangle(3);
三角形将如下所示:
*
**
***)
static void triangle(int a)
{
for (int i = 0; i < a; i++)
{
Console.Write("*");
for (int j = 0; j < i; j++)
{
Console.Write("*");
}
Console.WriteLine("");
}
}
发布于 2019-05-27 13:48:30
是的:@yaho cho的答案解决了这个问题。
嵌套循环是很难理解,因为他们可以,因为它们是指内部增长回到一个不断增长的外环。简单来说:如果你只是像这样循环和计数:
一
...暂停并让循环B运行
二
---暂停并让循环B运行
三
这个外循环看起来很简单:一,二,三。但是,内部Loop B
是指回至当前的外环的计数器,所以它的增长里面!
只需重命名变量就可以让问题更加清晰 - 一个完美的做法:
public static void PrintTriangle(int lineCount)
{
// Outer loop: for each line:
// Number all lines from one;
// and the star count will equal the line number:
// (otherwise it is simply off by one if zero-based):
for (int lineNumber = 1; lineNumber <= lineCount; ++lineNumber)
{
// For clarity: now the star count equals the line number:
int starCount = lineNumber;
// Inner loop: for each star:
// Print the stars on this line:
for (int star = 1; star <= starCount; ++star) {
Console.Write('*');
}
// End each line with a line break:
Console.WriteLine();
}
}
https://stackoverflow.com/questions/-100006817
复制相似问题