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

直角三角形

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

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

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("
"
); }

输入指定行数的菱形

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("
"
); }

输入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("
"
); } 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("
"
); }

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


你可能感兴趣的:(javascript)