第二个'for'循环是否必要,如果是,为什么?

时间:2016-08-18 02:42:51

标签: function loops

I think that my confusion is also related to my misunderstanding of the tier definition. What purpose does the '' placeholder serve in defining the tier variable as such?

function printTriangle(length) {
    for(var i = 1; i <= length; i++) {

        var tier = '';

        for(var j = 0; j < i; j++) {
            tier += '*';
        }

    console.log(tier);
   }
}
//printTriangle(3);


*
**
***

此外,添加第三个循环如何使输出与金字塔对齐?我已经看到这被用作脑力激荡/面试提示,但我认为基本的理解(我只是潜入这个,如果你还不能说)将使三角形转换到金字塔相当简单。

       *
      * *
     * * *
    * * * *
   * * * * *
  * * * * * *
 * * * * * * *
* * * * * * * *
function printPyramid(length) {
    for(var i = 1; i <= length; i++) {
        var tier = '';

        for(var j = length - i; j > 0; j--) {
            tier += ' ';
        }
        for(var k = 0; k < i; k++) {
            tier += '* ';
        }
     console.log(tier);
    }
}
//printPyramid(10);

提前谢谢!

1 个答案:

答案 0 :(得分:0)

''占位符仅用于将tier变量初始化为字符串。在输入循环并添加实际字符之前,它的值永远不会被使用。

是。第一个循环处理行。第二个循环绘制每个级别。请注意,j循环使用i作为输入参数。在这种情况下,金字塔等级(从顶部开始)等于该点金字塔的宽度。

添加第三个循环并不是多余的。它的作用是添加空格字符,使金字塔看起来有一个居中的顶部,而不是一个与屏幕左侧齐平的顶部。