zoukankan      html  css  js  c++  java
  • javascript(for)循环语句3.0

    6、循环语句—for

    (1)、语法:for(定义初始变量;条件;步长【初始变量的操作】) { 循环体;}

    练习1-1:

    //练习:求10!=1*2*3*4*......*10;(10的阶乘)
    var jc = 1;
    for (var i=1; i<=10; i++) {
        jc =jc*i;
    }
    alert(jc);

    (2)、循环中常用的两个关键字

    break:跳出循环

    练习2-1:

    var i = 100;
    while(i<200) {
        if(i==90) {
            alert("i=90, 循环结束);
            break;
        }
        console.log(i);
        i--;
    }

    continue:跳出当次循环,后续循环会继续执行

    练习2-2:

    for(var i=0; i<10; i++) {
        if(i==5) {
            console.warn("跳过5");
            continue; //结束本次循环
        }
        console.log(i);
    }

    (3)、javascript表格构建

    练习3-1:9*9乘法表格打印

    document.write("<table width="900" height="450" border="1">);
    for(var r=1; r<=9; r++) {
        document.write("<tr>");
            for(var c=1; c<=9; c++) {
            if(r>=c) {
              document.write("<td>"+c+"x"+r+"="+r*c+"</td>");
            }
            }
         document.write("</tr>");
    document.write("<table>");    

    (4)、作业

    练习4-1:打印直角三角形

    for(var i=0; i<5; i++) {
        //行大于列  显示左下部分的内容
        for(var j=0; j<=i; j++) {
            //输出字符,以做显示   
            document.write("*nbsp;");
        }
        //这里换行  在每次列循环以后进行换行
        document.write("<br>");
    }    

    练习4-2:打印右三角形

    for(var i=0; i<5; i++) {
        for(var j=0; j<5; j++) {
    //这里是i(行)大于4-j
            if(i>=4-j) {
                document.write("&nbsp;*");
            }
            else {
                document.write("&nbsp; ");
            }
        }
        document.write("<br>");
    }

    练习4-3:打印菱形

    //菱形的上半部分   前6行是递增显示
    for(var row=0; row<6; row++) {
    //从左向右  共11列 依次遍历
        for(var i=1; i<=11; i++) {
    //对满足条件的坐标进行 显示*号
            if(i==6-row || i==row+6) {
                document.write("&nbsp;*");
            }
            else {
                document.write("&nbsp; ");
            }
        }
    //每遍历完一行进行换行
        document.write("<br>");
    }
    
    //菱形的下半部分
    for(var row=4; row>=0; row--) {
        for(var i=1; i<=11; i++) {
            if(i==6+row || i==6-row) {
                document.write("&nbsp;*");
            }
            else {
                document.write("&nbsp ");
            }
        }
        document.write("<br>");
    }

    练习4-4:猴子吃桃问题

      猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少?

    数学思路:x10 = (x9/2)-1

    x9=(x10+1)*2

    x8=(x9+1)*2

    var before = 0;
    var td = 1;
    for(var i=10; i>1; i--) {
    //上一个值对下一个值有影响
        before = (td+1)*2;
        td = before;
    }
    document.write(before);

    练习4-5:求出1-100之间的所有质数(只能被1和他自身整除的数)

    for(var i=2; i<100; i++)  {
    //做标记
        var flag = true;
    //对每个取到的i  用i/2给除数定制范围  k则在这个范围内取到每个数    除以2是因为  当i大于i/2时   它将不会被任何数除尽
        for(var k=2; k<(i/2)+1; k++) {
    //当i被k整除尽
            if(i%k) {
    //转换标志  方便后面输出值
                flag = flase;
                break;
            }
        }
        if(flag) {
             document(i);
             document.write("<br>");  
    }        

    练习4-6:将一个正整数分解质因数。

    例如:输入90,打印出90=2*3*3*5;

    程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按照下述步骤进行

    (1)、如果这个质数恰等于n,则说明分解质因数的过程已经结束,打印出即可。

    (2)、如果n>k,但n能被k整除,则应该打印出k的值,并用n除以k的商,作为新的正整数n,重复执行第一步。

    (3)、如果n不能被k整除,则用k+1作为k的值,重复执行第一步。

    var n = 90;
    var k = 2; 
    document.write(n + "=");
    //判断被除数和除数是否相等
    if(n!=k) {
    //如果n能被k整除掉
        if(n%k==0) {
    //记录k的值,并且将新的商赋值给被除数
            document.write(k);
            n=n/k;
        }
    //当k为除数不能再往下除时  对除数加1  直到k和n相等为止
        else {
            k++;
        }
    }

    练习4-7:一个数恰好等于它的因子之和,这个数就称为“完数”。

    例如:6=1+2+3,找出1000以内的所有完数

    //遍历1000以内的数
    forvar i=0 ,i<=1000; i++){
    //定义标记
        var flag = true;
    //定义一个变量来存放每个质因数的总和
        var sum = 0;
        for(var k=2; k<i; k++) {
    //判断达到因数的条件
            if(i%k==0) {
    //取到每个质因数相加的和
                sum = k+sum;
            }                
        }
    //sum==i成立会返回true,这里是布尔值
        flag = (sum==i);
    //满足条件的i
        if(flag) {
            document.write(i + "是完数<br>");
        }
    }
  • 相关阅读:
    paip.重装系统需要备份的资料总结..
    poj3078
    poj3009
    poj2151
    poj3274
    poj3436
    VC++:打开、保存文件对话框和浏览文件夹对话框
    目前所有的视频格式都有哪些?
    CMSHFlexGrid 类用法
    Matlab的ActiveX接口_百度文库
  • 原文地址:https://www.cnblogs.com/HelloM/p/13489391.html
Copyright © 2011-2022 走看看