编程打印三角形等图形主要运用for循环的嵌套来实现,根据不同的条件在循环下添加多样方法
三角形排列
当输入的数字为5时,打印 * 型三角形排列:
利用for循环的嵌套来实现,外层for循环换行,内层打印 * 。
*
**
***
****
*****
<script type="text/javascript">
var n = 5; //n为输入的数字5
var text = ""; //利用text来输出
//外层循环,利用 i<=n 控制一共循环几次,每循环一次给 text 加一个换行符
for (var i = 1; i <= n; i++) {
//内层循环,用来打印 * ,利用 k<i;k++ 来控制每一行打印的 * 的个数
for (var k = 0; k < i; k++) {
text += "*";
}
text += "\n"; // \n 换行符
}
console.log(text); //控制台输出
</script>
var foo = 'bar';
四边形排列
例输入的数字5时,打印 * 型平行四边形排列:
用到三个For循环,一个在外层控制换行,两个在内层来分别打印 " 空格" 和 * 。
*****
*****
*****
*****
*****
<script type="text/javascript">
var n = 5;
var text = "";
for (var i = 1; i <= n; i++) {
//这个for循环用来打印空格,在控制台输出可在引号内直接打 空格
for (var j = 0; j < i; j++) {
text += "";
}
for (var k = 0; k <= 5; k++) { //打印 *
text += "*";
}
text += "\n"; // \n 换行符
}
console.log(text); //控制台输出
</script>
菱形阵列
当输入的数字为5时,打印 * 型菱形排列。
这里我根据菱形的对称性,在程序中添加了一个if条件判断是否打印完上半部分,
当完成打印上半部分后,传入一个为 n-1 的值逐次递减 (外层循环不用n,内层循环用n来控制打印)
这样可以不用单独写菱形的上下两部分,不更改内层for循环打印的方法,用少量代码实现。
下面是详细代码:
*
***
*****
*******
*********
*******
*****
***
*
<script type="text/javascript">
var n = 5;
/*
定义 nn 的值为 n-1
目的时为了在下面的循环体中,既保证可使用 n 来控制整个结构
也可以用 nn 将值传递给 flag 进行对称。
*/
var nn = n-1;
var text = "";
//外层for循环只用来进行换行
for (var i = 1; i <= 2 * n; i++) {
// 定义一个 flag , 用 flag 来控制下面的两个for循环
var flag = i;
/*
根据对称原则 第四行与第六行相同
当打印完上半部分时(即i>n时),将 flag = nn-- ;
这样就使的图形对称起来。
*/
if (i > n) flag = nn--;
// flag 改变,下面for循环的打印方式也就改变
//打印空格
for (var j = n; j >= flag; j--) {
text += " ";
}
//打印*
for (var k = 0; k < (2 * flag - 1); k++) {
text += "*";
}
text += "\n";// 换行符
}
console.log(text);//在控制台输出
</script>
查看控制台的输出,打开网页按F12键,找到Console点击即可查看