在JavaScript中用for循环输出等腰、直角三角形、菱形

来源:互联网 发布:网络链接不上 编辑:程序博客网 时间:2024/05/16 07:53

直角三角形

  for(var i=0;i<10;i++){        for(var j=0;j <i;j++){            document.write("*");        }        document.write("</br>");    }

输出指定行数的等腰三角形

var row = Number(prompt("输入行数"));    for (var i = 1;i <= row;i++) {        for (var j = row-i; j >= 0; j--) {            document.write("_");        }        for(var n = 1;n <=2*i-1;n++){            document.write("@");        }        document.write("<br>");    }

输入指定行数的菱形

var row = Number(prompt("输入行数"));    for (var i = 1;i <= 2*row-1;i++) {        var blanks = Math.abs(row-i);//空格的个数        var stars = 2*row-1-2*blanks;               //@个数,2*row是一个矩形,减去两边空格的个数,剩下中间的就是一个菱形           for (var j = 1; j <=blanks; j++) {            document.write("_");        }        for(var n = 1;n <=stars;n++){            document.write("@");        }        document.write("<br>");    }

输入row = 6;这里菱形输出是用的绝对值的函数,也可以用等腰三角形的代码输出两遍。第二遍倒着输出达到的效果是一样的。

输出菱形的另一种方法:

var row = Number(prompt("输入行数"));    for (var i = 1;i <= row;i++) {        for (var j = row-i; j >= 0; j--) {            document.write("_");        }        for(var n = 1;n <=2*i-1;n++){            document.write("@");        }        document.write("<br>");    }    for(i = 1;i <=row-1;i++){        for(j = 0;j <=i;j++){            document.write("_");        }        for(n = 2*(row-i);n >1;n-- ){            document.write("@")        }        document.write("<br>");    }

我们遇到麻烦的时候不要死磕当前的思路,凡事换个角度去思考,输出菱形也可以从矩形的角度出发,减去两边的空格数就等于菱形了,把 var stars = 2*row-1-2*blanks;换成2*Math.abs(i-row)也可以达到同样的效果,但前者更加宏观清晰。在写代码之前,先把各个元素列出来,找出其中的规律,再下手写代码,这样就会很清晰的让代码跟着自己的思路走,不至于一边写一边删。。
第二种方法笨点,但也同样可以达到相同的效果。当然,第一种逼格更高一点。


原创粉丝点击