JS循环

  循环就是一遍又一遍重复执行的代码或相似的代码。

  特点:循环的条件:规定了循环的执行次数;

       循环的操作:执行相同或相似的语句;

       循环的变量:循环的记录;

 控制循环语句:break语句用于跳出循环,常常与条件语句一起使用,使程序终止循环而执行后面的语句。

continue语句用于跳过循环中的一个迭代,跳过循环体剩余语句而执行下一次循环。

  循环有三种结构:while循环,do...while循环,for循环。

  while循环

  语法
    while(条件){//条件:得到的结构必须是boolean
            //循环体 ---重复做的事情
    }

  循环流程:
  1、判断 循环条件
  2、如果条件为真,则执行循环体 ; 更改循环变量的值 ----更改的方向是趋向于结束循环
  3、再一次判断条件 ,如果条件为真则继续执行循环体 .... 
  4、止到条件为假 ,则结束循环

  do...while循环结构

  1.语法:
    do{
      //循环体
    }while(条件)
  2.流程
    1、执行一次循环体
    2、判断循环条件是否满足
      如果条件为真,则继续执行循环体
      如果条件为假,则退出循环
    3.do while 和 while之间的区别 
      do..while至少执行一次 先执行 再判断
      while 可能一次都不执行 先判断 后执行

  for循环

  1、语法
    for(表达式1;表达式2;表达式3){
      循环操作 4
    }
    表达式1:声明条件 1
    表达式2:循环条件判断 2
    表达式3:更新循环变量 3

二十道循环题:

判断101-200之间有多少个素数,并输出所有素数。

function fun1(){
  for(var i=101,count=0;i<200;i++){
  var flag=false;
  for(j=2;j<i;j++){
  if(i%j == 0){
  flag=false;
  break;
  }else{
  flag=true;
  }    
}
  if(flag){
  count++;
  console.log("素数为:"+i)
}
}
}

九九乘法口诀表
<script type="text/javascript">
  for(var i=1;i<=9;i++){
  for(var j=1;j<=i;j++){
  document.write(j+"*"+i+"="+i*j+"\t");
  }
  document.write("<br />");
  }

</script>

200-300中第一个能被7整除的数

for(var i=200;i<300;i++){
    if(i%7==0){
        console.log(i);
        break;
    }
}

打印出所有的"水仙花数",所谓"水仙花数"是指一个三位数,其各位数字立方和等于该数本身。

例如:153是一个"水仙花数",因为153=1的三次方+5的三次方+3的三次方。   

for(i=100;i<1000;i++){
                      var a= parseInt(i%10);     //个
                      var b=parseInt((i/10)%10); //十
                      var c=parseInt(i/100);     //百
                      if(a*a*a+b*b*b+c*c*c==i){
                      document.write('水仙花数:'+i+'<hr />');
                      }    
                 }
求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
function fun(){
var num = Number(prompt("请输入一个数:"));
var count=Number(prompt("叠加的个数:"))
var n=0,sum=0;//n表示每一个加数,sum表示所有累加的和
for(var i=1;i<=count;i++){
n=n*10+num;//每一个加数
sum+=n;
}
console.log(sum);

}

有5个人坐在一起,问第五个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。

问第三个人,又说比第2人大两岁。问第2个人,说比第一个人大两岁。最后问第一个人,他说是10岁。请问第五个人多大?

var sum=10
for(var i=0;i<4;i++){
sum=sum+2;
}    
console.log(sum)
计算用户输入的数字的阶乘,例如用户输入的是5,则计算5的阶乘,5的阶乘为 5*4*3*2*1
var num=prompt("输出一个数的阶层")
var sum=1;
for(var k=2;k<=num;k++){
sum=k+"*"+sum;
}
document.write("阶层为:"+sum)

定义一个函数,返回1+1/3+1/5+1/7+....1/n的和
function fun(){
var n=prompt("输出一个数");
var sum=0;
for(var i = 1; i <=n; i++){
if(i%2!=0){
sum+=1/i;
}    
console.log("和为:"+sum)    
}    
}
1~100奇数和
var sum=0;
for(var i=1;i<=100;i+=2){
sum+=i;
}
document.write(sum+"<br />");
1~100偶数和
var sum=0;
for(var i=2;i<=100;i+=2){
sum+=i;
}
document.write(sum);
小明单位发了100元的购物卡,小明到超市买三类洗化用品,洗发水(15元),香皂(2元),牙刷(5元)。要把100元整好花掉,可如有哪些购买结合?
//a=洗发水,b=香皂,c=牙刷
//100元可以买6瓶洗发水
for(var a=0;a<=6;a++){
//100元可以买50块香皂
for(var b=0;b<=50;b++){
//100元可以买20个牙刷
for(var c=0;c<=20;c++){
//条件
if(15*a+2*b+5*c==100){
document.write("洗发水:"+a+"香皂:"+b+"牙刷:"+c+"<hr />");
}
}
}
}

凑钱1,2,5凑20元钱有多少种可能


for(var a=0;a<=20;a++){
                 for(var b=0;b<=10;b++){
                     for(var c=0;c<=4;c++){
                         if(a+2*b+5*c==20){
                             document.write("一块:"+a+"两块:"+b+"五块:"+c+"<hr />")
                         }
                     }
                 }                
             }

有一对幼兔,幼兔1个月后长成小兔,小兔1个月后长成成兔并生下一对幼兔,问几年后有多少对兔子,幼兔、小兔、成兔对数分别是多少。


var a,b,c,sum;
             for(var i=1;i<=12;i++){
                 //第一个月的时候
                 if(i==1){
                     a = 1;
                     b = 0;
                     c = 0;
                    sum = 1;
                 }else{
                     c = c + b;
                     b = a;
                     a = c;
                     sum = a + b + c;
                 }
                 document.write(i+"个月后有幼兔:"+a+"对,小兔:"+b+"对,成兔:"+c+"对;一共:"+sum+"对。<hr />")

通过for循环实现百钱买百🐔的题:公鸡5元每只,母鸡3元每只,小鸡3只1元,100元买一百只鸡多少种办法

 

for(var a=0;a<=20;a++){ for(var b=0;b<=33;b++){ var c=100-a-b; if((a+b+c==100) && (5*a+3*b+c/3==100)){ document.write("公鸡:" + a + "母鸡:" + b + "小鸡:" + c + "<hr />"); } } }

 



1 document.write("<table border=1 style=border-collapse:collapse>"); 2for(var i=9;i>=1;i--){ 3 document.write('<tr>'); 4for(var j=1;j<=i;j++){ 5 document.write('<td>'); 6 document.write(j+'x'+i+'='+(i*j)); 7 document.write('</td>'); 8 } 9 document.write('</tr>'); 10 } 11 document.write('</table>'+'<br />');


某侦察队接到一项紧急任务,要求在A、B、C、D、E、F六个队员中尽可能多地挑若干人,但有以下限制条件:<br />
●A和B两人中至少去一人;
●A和D不能一起去;
●A、E和F三人中要派两人去;
●B和C都去或都不去;
●C和D两人中去一个;
●若D不去,则E也不去。
   问应当让哪几个人去?


 for(var a=0;a<=1;a++){
                  for(var b=0;b<=1;b++){
                      for(var c=0;c<=1;c++){
                          for(var d=0;d<=1;d++){
                              for(var e=0;e<=1;e++){
                                  for(var f=0;f<=1;f++){
                                      //根据上面列出的条件,全都加到判断中,符合条件的就是最终的结果
                                      if(a+b>=1 && a+d!=2 && a+e+f==2 && b==c && c+d==1 && (d+e==0||d==1)){
                                          document.write('a='+a+'<br />b='+b+'<br />c='+c+'<br />d='+d+'<br />e='+e+'<br />f='+f);
                                     }
                                }
                             }
                         }
                     }
                 }            
             }

打印出下列图形


  ●●●●●●●●
  ●●●●●●●●
  ●●●●●●●●
  ●●●●●●●●
  ●●●●●●●●
  ●●●●●●●●
  ●●●●●●●●


 //循环的行数
             for(var x=1;x<=7;x++){
                 //循环的列数
                 for(var y=1;y<=8;y++){
                     document.write('●');
                 }
             //循环完每一行输出一个换行
             document.write('<br />');
             } 
  ●
  ●●
  ●●●
  ●●●●
  ●●●●●

 for(var x=1;x<=5;x++){
                 for(var y=1;y<=x;y++){
                     document.write('●');
                 }
             document.write('<br />');
             }
  ●●●●●
  ●●●●
  ●●●
  ●●
  ●

for(var x=1;x<=6;x++){
                for(var y=1;y<=6-x;y++){
                    document.write('●');
                }
            document.write('<br />');
            }
  □□□□● 
  □□□●●
  □□●●●
  □●●●●
  ●●●●●

for(var x=1;x<=5;x++){
                 for(var y=1;y<=5-x;y++){
                     document.write('□');
                 }
                 for(var z=1;z<=x;z++){
                     document.write('●');
                 }
             document.write('<br />');
             }

实现斐波拉切数列 1 1 2 3 5 8 13 21    特点:每前两个数相加等于第三个数, 前两 个数比较特殊,从第三个数开始。

   var num1 = 1;
   var num2 = 1;
   var sum = 0;
   for(var i=0;i<5;i++){
    sum = num1 + num2;
    num1 = num2;
    num2 = sum;
    
   }
   document.write(sum);
   sum = sum.toString();
   document.write(sum);

计算银行存款的收益,本金10000,利率千分之三,5年后的收益(本金+利息)


   var money = 1000;
   var sum_Money = sum_Money*1.003;
   for(var i=0;i<=5;i++){
    sum_Money *= 1.003
    
    
   }
   document.write(sum_Money);

打印正方型   *   注意:循环初始值的取值,i=0,i<5,循环6次,打印6行6列*


   for(var i=0;i<=5;i++){
    for(var j =0;j <= 5;j++){
     document.write("*");
    }
   
   document.write("<br />");
   }


求1-100之间的所有素数的和,及平均值


var sum = 0;


var pingjun = 0;


for(var i = 0; i <= 100;i++){


     sum = sum + i;


     if (i == 100){


         pingjun = sum /i;


   }


}


   document.write("和“+sum + "平均”+ pingjun



posted on 2019-05-21 19:28  HYhan  阅读(191)  评论(0编辑  收藏  举报

导航