JavaScript-循环、排序、翻转案例解析

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_39206750/article/details/102556507

打印五行五列的星星

     var ss = '';
        //外面循环一次、里面循环全部
        for (j = 0; j < 5; j++) {
            for (i = 1; i <= 5; i++) {
                ss += '♥';
            }
            //内循环每一次循环完打印一次
            ss += '\n';
        }
        console.log(ss);

打印N行N列的星星
修改把需要循环的行与列设置为一个变量、这个变量赋值为用户输入框、接收值

 var rows = prompt('请输入要打印星星的行数');
        var cols = prompt('请输入要打印星星的列数');
        var str = '';//定义一个空字符串
        for (i = 1; i <= rows; i++) {
            for (j = 1; j <= cols; j++) {
                str += '⭐';
            }
            str += '\n';
        }
        console.log(str);

打印倒三角形

  var str = '';
        // 外层循环一次、里层循环全部、
        for (i = 1; i <= 10; i++) {
  //当i=1时外层输出一行、里层的j=1时、判断是否符合条件、符合条件、跳到循环体、然后自增1、直到不符合条件跳出循环、
     //i执行一次、里面j执行到条件表达式不满足条件、
     //i=1 j从1开始执行到10 所以打印10个
     //i=2 j从2开始执行到10 所以打印9个
     //、依次类推
            for (j = i; j <= 10; j++) {
                str += '⭐';
            }
            str += '\n';
        }
        console.log(str);

打印正三角形1

 //1、正三角形思路:行=列、
        //当打印第一行的时候需要1颗星星、
        // 打印2的时候2颗星星、依次类推
        var str = '';
        //外层循环1次、里层循环到条件结束
        for (i = 1; i <= 9; i++) {
            //里层循环让i打印的行数=j的列数、i到第几行、j到第几列
            //内层循环从1开始、内层循环要<=外层循环次数、大于就跳出了循环
            for (j = 1; j <= i; j++) {
                str += '⭐';
            }
            str += '\n';
        }
        console.log(str);

打印正三角形2

//1、思路;第一行1颗、第二行2颗、第三行三颗
//2、当外层循环=1的时候、内层循环打印一颗星星、=2时、打印2颗、依次打印
//3、所以设置变量、内层循环的j=i;让j自减
//4、外层循环循环一次、内层循环到false

// 1、第一次循环:j的初始值等于i、当j=1时、j>0符合条件执行循环体、
//循环体执行一次后、执行j--、j自减1后变成0了、就打印了一颗
//第二次循环:初始值为2、条件满足、执行循环体一次、
//2、然后j自减1、2-1=1、然后在执行一次、后1-1为0、第二次循环结束、就打印了2颗
//第三、第四、以此类推
        var str = '';
        for (var i = 1; i <= 10; i++) {
            for (var j = i; j > 0; j--) {
                str += '⭐';//循环体
            }
            str += '\n';
        }
        console.log(str);

打印九九乘法表
打印九九乘法表与打印正三角原理是一样的、

 var str = '';
        //外层循环一次、内层循环全部、 
        for (i = 1; i <= 9; i++) {
            //i打印的行数=j的列数、
            //j每执到J++就判断一次、直到条件不符合
            for (j = 1; j <= i; j++) {
                str += i + '*' + j + '=' + i * j + ' ';
            }
            str += '\n';
        }
        console.log(str);

返回三个数中的最大值

  • 这儿使用的是三元表达式
 function getMax(num1, num2, num3, num4) {
            var num1 = parseFloat(prompt('请输入第一个数据'));
            var num2 = parseFloat(prompt('请输入第二个数据'));
            var num3 = parseFloat(prompt('请输入第三个数据'));
            
            // 创建一个临时空间、用于存放1和2中的最大值、
             var temp = num1 > num2 ? num1 : num2;
             //在创建空间用于存放temp 和num3中的最大值
             var Max = temp > num3 ? temp : num3;
             //返回最大值
            return Max;
          
        }
        alert(getMax());

翻转数组

     function getArr() {
            var arr = [1, 5, 6, 3, 4, 2];
            var myArr = [];
            //i = arr.length - 1 获取数组元素的长度、 
            //从最后一个数组元素开始、 每执行1次循环体、数组长度减1
            for (i = arr.length - 1; i >= 0; i--) {
            //把arr的最后一个数组元素放到myArr的最后、
            //每遍历一次都把i的值放到myArr的最后、所以数组元素翻转了过来
                myArr[myArr.length] = arr[i];
            }
            return myArr;

        }
        console.log(getArr());

冒泡排序


        //外层循环每走一次、选取了一次最大值、并且交换到了最后面、
        //所以已经交换到最后的数组元素就不用交换了、
        //所以j<.leng-i-1;i属于已经交换好的最大值
        
        var aArr = [100, 60, 70, 80, 55];
        //内层循环显示趟数
        for (i = 0; i < aArr.length - 1; i++) {
            //外层循环显示每一趟的交换次数
            for (j = 0; j < aArr.length - i - 1; j++) {
                if (aArr[j] > aArr[j + 1]) {
      //创建临时变量把最大值把最大值赋值给aArr[j+1]、这样就依次排到后面去了
                    var temp = aArr[j];
                    aArr[j] = aArr[j + 1];
                    aArr[j + 1] = temp;
                }
            }
        }
        console.log(aArr);

求质数

   //条件:返回能被一和自己整除的数

   	 	 var arr = [];
	// 外层循环确定循环的趟数
		for (var i = 1; i <= 100; i++) {
	//如果i中a=2开始到它本身-1能被i整除的就结束循环、执行下面的代码 
	//如果直到循环条件结束都不能被整除的话、那就是质数、因为质数只能被它本身整除、
	//这儿当执行到a<i的条件不成立时、a会等于i
	//所以下面判断的话就会相等
         for (var a = 2; a < i; a++) {
               if (i % a == 0) {
                   break;
               }
           }
           //判断是不是它本身、前面结果如何都会判断执行这样代码
           //只有a===i才是质数、
            if (a === i) {
           //把i赋值给空数组
               arr[arr.length] = i;
            }

        }
        console.log(arr);

猜你喜欢

转载自blog.csdn.net/qq_39206750/article/details/102556507
今日推荐