JS从零开始(12)

115 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第12天,点击查看活动详情

for循环例题

下面是一个for循环的例题🎈

一、打印5个图标案例

        var str = '';
        for (var i = 0; i <= 5; i++) {
            str = str +'👩‍🦰';
        }
        console.log(str);

如下所见👇

image.png

这个比较简单,我们不做分析,下面来看几个双重for循环的案例

二、打印5行5列图标

        var str = '';
        for (var i = 1; i <= 5; i++) {
            for (var j = 1; j <= 5; j++) {
                str = str + '🎈';
            }
            str = str + '\n';
        }
        console.log(str);

image.png

分析:我们可以看到外层i和内层j均是小于等于5,在外层,i是用来控制行数,内层j是用来控制列数。当i等于1的时候,内层j开始循环遍历1~5,而str也由空逐渐增加到5个🎈,内层(列数)第一遍遍历完后得到一行🎈,然后再再这行末尾另起一行,由此开始遍历外层第二遍(i=2),再进入内层j遍历,以此类推,最终打印5行5列的🎈

三、打印倒三角形

        var str1 = '';
        for (var i = 1; i <= 10; i++) {
            for (var j = i; j <= 10; j++) {
                str1 += '🎈';
            }
            str1 += '\n';
        }
        console.log(str1);

image.png

分析:这个跟上面的区别就在于核心算法var j = i,为什么这样说呢?我们看上面的图中的三角形,行数和列数刚好顺序相反,所以算法var j = i的意义就在于让每行打印的🎈都逐渐减少(10~1),这样倒三角形就打印出来了

ps:大家可以思考一下正三角形是怎样打印的,跟倒三角形很类似。

四、打印九九乘法表

        var str = '';
        for (var i = 1; i <= 9; i++) {
            for (var j = 1; j <= i; j++) {
                str += j + 'x' + i +'=' + i * j + '\t';
            }
            str += '\n';
        }
        console.log(str);

image.png

分析:这个题目可以说也是正三角形,那么他的核心算法是什么呢?毫无疑问是j <= istr += j + 'x' + i +'=' + i * j + '\t'j <= i是打印正三角形的核心算法,而str += j + 'x' + i +'=' + i * j + '\t'是打印乘法表的核心算法。这个算法很简单,无非就是字符串拼接和转义字符的使用,大家自行体会👀。