JS打印三角形排列、四边形排列和菱形排列

编程打印三角形等图形主要运用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点击即可查看
三角形
四边形
菱形

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值