08 循环

84 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

分支结构 if、if-else 、if-else if else if......else、switch-case

循环
while循环、for循环

单分支
只有一个分支用 if

有两个分支用if-else

多分支范围类if-else if......else

多分支具体值switch-case

需求:计算1-100之间所有整数和(5050)

//定义一个变量
var sum = 0; //存储和
var i = 1; //初始值
while(i <= 100){
                sum += i; //sum = sum + i
                i++;
               }
console.log("1-100的和为" + sum);

需求:计算1-100之间的偶数和

 var sum = 0;
 var i = 1;
 while(i <= 100){
                 if(i % 2 == 0){
                                sum += i;
                               }
                 i++;
                }
console.log(sum);       

do-while循环

do{
   代码块;
  }while(条件);

需求:计算1-100的和

var sum = 0;
var i = 1;
do{
   sum += i;
   i++;
  }while(i <= 100);
console.log(sum);

注:while结束一定要加分号;

需求:求100以内3的倍数的和

var sum = 0;
var i = 1;
do{
   if(i % 3 == 0){ //判断是否为3的倍数
                  sum += i; //和
                 }
   i++; //自加计数
  }while(i <= 100); //100以内
console.log(sum);

需求:"你觉得我帅吗?"提示用户请输入Y/N,如果是N就一直问,输入Y则结束并提示"您真有眼光"

do{
   var result = prompt("您觉得我帅吗? Y/N");
  }while(result != "Y");
console.log("您真有眼光");

for循环

for(初始化表达式1;条件表达式2;自增表达式3){
   循环体;
}

首先执行初始化表达式1,其次判断条件表达式2,如果条件表达式2不成立,则直接跳出整个循环体,如果条件表达式2成立,则执行循环体,执行完循环体之后,再去执行自增表达式3,再去判断是否成立,以此类推

需求:输出0-5之间的数字

for(var i = 0; i <= 5; i++){
                            console.log(i);
                           }

需求:输出一句话10次

for(var i = 0; i <= 10; i++){
                            console.log("哈哈" + (i+1));
                           }

需求:求1-5的和

var sum = 0;
for(var i = 0; i <= 5; i++){
                            sum += i; //sum = sum + i
                           }
console.log("1-5的和" + sum);

注:输出在循环的外面

需求:打印5个☆

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

需求:打印5行5列的☆

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

行的for循环里包含了列的for循环

练习

需求:求1-100之间所有数的和

var sum = 0;
for(var i = 0; i <= 100; i++){
   sum += i;
}
console.log("1-100的和为" + sum);

需求:求1-100之间的偶数和

var sum = 0;
for(var i = 0; i <= 100; i++){
   if(i % 2 == 0){
     sum += i;
   }
}
console.log("1-100之间的偶数和为" + sum);

需求:求1-100之间的奇数和

var sum = 0;
for(var i = 0; i <= 100; i++){
   if(i % 2 != 0){
     sum += i;
   }
}
console.log("1-100之间的奇数和为" + sum);

需求:求1-100之间的所有数的和的平均值

var sum = 0;
for(var i = 0; i <= 100; i++){
   sum += i;
}
console.log("1-100之间的数的和的平均值" + (sum / 100));

需求:同时求1-100之间的所有偶数、奇数和

var oddNum = 0; //存储奇数
var evenNum = 0; //存储偶数
for(var i = 1; i <= 100; i++){
   if(i % 2 == 0){ //判断为偶数
     evenNum += i;
   }else{ //剩下的为奇数
    oddNum += i;
   }
}
console.log("奇数和为" + oddNum);
console.log("偶数和为" + evenNum);

需求:1-100里3的倍数和

var sum = 0; //存储和
for(var i = 0; i <= 100; i++){
   if(i % 3 == 0){ //判断为3的倍数
     sum += i; //相加
   }
}
console.log(sum);

需求:

 ☆
 ☆☆
 ☆☆☆
 ☆☆☆☆
 ☆☆☆☆☆
   for(var i = 0; i < 5; i++){ //控制行 i本身在递增
   for(var j = 0; j <= i; j++){ //控制列 因为每行递加所以j要跟随i的变化来
      document.write("☆");
   }
      document.write("<br/>");
}

需求:9*9乘法表

for(var i = 1; i <= 9; i++){ //控制行 i本身在递增
   for(var j = 1; j <= i; j++){ //控制列 因为每行递加
      document.write(j+"*"+i+"="+i*j); //打印样式
   }
   document.write("<br />");
}

注:控制行的循环里包含了控制列的循环。控制行的循环每判断一次控制列的循环都要从初始值进行重新判断。这才能使得每行递加且符合9*9乘法表,即控制行的循环判断了9次而进行控制列的循环则判断了81次。