首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我需要帮助了解循环如何工作

我需要帮助了解循环如何工作
EN

Stack Overflow用户
提问于 2019-05-27 04:03:06
回答 1查看 0关注 0票数 0

我很难理解如何掌握循环是如何工作的,并不是我不知道他们做了什么,但是如果有意义的话,我在理解如何将它们放在一起时遇到问题。

例如,在我提供的代码中,为什么我需要<a? 和为什么j需要为<i使输入组成一个三角形?

为什么我需要先放置Console.Write("*"),为什么Console.WriteLine("")需要在最后形成三角形?

我希望有人可以用这种简单的理解来帮助我,因为到目前为止,我有点使用我的记忆,我实际上并不理解为什么所有这些都是按照形成三角形的方式构建的。

(我的命令是使用用户正在创建的输入创建一个形成三角形的静态代码,例如当我使用这样的函数时:triangle(3); 三角形将如下所示:

代码语言:javascript
复制
*
**
***)
代码语言:javascript
复制
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("");
    }
}
EN

回答 1

Stack Overflow用户

发布于 2019-05-27 13:48:30

是的:@yaho cho的答案解决了这个问题。

嵌套循环很难理解,因为他们可以,因为它们是指内部增长回到一个不断增长的外环。简单来说:如果你只是像这样循环和计数:

...暂停并让循环B运行

---暂停并让循环B运行

这个外循环看起来很简单:一,二,三。但是,内部Loop B指回至当前的外环的计数器,所以它的增长里面!

只需重命名变量就可以让问题更加清晰 - 一个完美的做法:

代码语言:javascript
复制
    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();
        }
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100006817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档