您的位置:首页 > Web前端 > JavaScript

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

2017-09-15 11:49 716 查看

直角三角形

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)也可以达到同样的效果,但前者更加宏观清晰。在写代码之前,先把各个元素列出来,找出其中的规律,再下手写代码,这样就会很清晰的让代码跟着自己的思路走,不至于一边写一边删。。

第二种方法笨点,但也同样可以达到相同的效果。当然,第一种逼格更高一点。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: