JS:控制结构之循环结构

1、while循环

while循环:1 先判断循环条件 2 假如条件为真,则执行循环体后继续回到1,假如条件为假,整个while结束

  • 打印1-100
var i = 1;  //i代表一个数
while(i<=100) {
   //打印i
   console.log(i);
   i++;
}
  • 页面上输出10个*每一次输出一个
var i = 1; //i表示次数
var str = "";
while(i<=10) {
   str += "*";
   i++;
}
console.log(str);
  • 输出1-100之间所有能被3整除又能被8整除的数
// 不断拿一个数进行判断
var i = 1;
while(i<=100) {
   // 对i进行判断
   if (i%3==0 && i%8==0) {
	  console.log(i);
   }
   i++;// ++i i=i+1 i+=1
}
  • 求和 0+1+2+3+…+100
//  1 定义一个变量sum存储和
var sum = 0;
//  2 定义一个变量表示加数     
var i = 1;
while(i<=100) {
  sum = sum + i;
  i++;
}
console.log("sum="+sum);

2、do…while循环

do-while:先执行循环体,判断条件,假如条件为真,则继续执行循环体,直到条件为假do-while循环结束
while的循环体可能一次也不执行 do-while循环体至少执行一次

  • 输出1 2 3 4 5
var i = 1;
var str = "";
do {
  // 重复的语句-----循环体
  str += i + " ";
  i++;
} while(i<=5);
console.log(str);

3、for循环

for(表达式1;表达式2;表达式3) { 循环体 }
表达式1:变量初始化;表达式2:循环条件;表达式3:循环变量改变
执行流程: 执行表1 -> 执行表2,表2为假 for循环结束 表2为真执行表3 -> 执行循环体 -> 执行表3 再回到第2步

  • 输出:1 2 3 4 5 6 7 8 9 10
var str = "";
for(var i = 1; i<=10; i++) {
  //循环体
 str += i+" ";
}
console.log(str);
var i = 1;
var strj = "";
for(; i<=10; ) {
  //循环体
  strj += i+" ";
  i++;
}
console.log(strj);
  • 死循环
for(;;) {
	console.log(1);
}

4、循环总结

while|do-while|for:本质都是重复执行语句
while 一般只知道条件,不知道具体的循环次数情况下
do-while 希望有的代码一开始就执行一次
for循环一般用于循环次数固定的情况

5、循环应用-水仙花数

三位数 水仙花数 每个位的数的立方和等于它本身

// 思路 每次拿一个三位数 得到个位  十位  百位 求立方和 判断是否和自己相等
for(var i=100; i<=999; i++) {
	// 定义三个变量 分别存储个 十 百位上的数
	var dig = i%10;// 234%10 
	var ten =  parseInt(i/10)%10    //  234/10-----> 23.4取整----->23%10--->3 
	var hund = parseInt(i/100);
	// 对三个数的立方和与自己比较
	  if (Math.pow(dig,3) + Math.pow(ten,3) + Math.pow(hund,3) === i) {
		document.write(i+"是水仙花数<br>");
	 }
}

6、循环应用-阶乘

  • 求5! 1 * 1 * 2 * 3 * 4 * 5
var sum = 1; // 初始化值为1
for(var i=1; i<=5; i++) {
	sum = sum * i;
}
console.log(sum);//120
  • 阶乘和 1!+2!+3!+4!+5! 1!+ 1!*2 + 2!*3+3!*4+4!*5
var fac = 1;// 求任意一个数的阶乘
var sum = 0;
for(var i=1; i<=5; i++) {
   fac = fac * i;
   sum = sum + fac;
}
console.log(sum);
  • 1-1/2+1/3-1/4+…1/100求和
var sum = 0;
for(var i=1; i<=100; i++) {
	if(i%2) {
		sum += 1/i;
	} else {
		sum += (-1)/i;
	}
}
console.log(sum);

7、break

break一般用于循环或switch结构,break只要执行,循环立即结束

var i = 1;
while(i<8) {
   console.log(i);
   i++;
   if(i==5) {
	  break; // break只要执行 循环立即结束
   }
}  // 1 2 3 4 
console.log("==break==:"+i);

8、continue

continue只用于循环,作用:结束本次循环后面的逻辑,继续下次循环

var i = 1;
while(i<8) {
   console.log(i);
   i++;
   if(i==5) {
	  continue; // 本次循环结束(假如后面有代码不执行) 继续下一次
   }
   console.log("ok");
}   // 1 2 3 4 5 6 7
console.log("==continue==:"+i);

9、循环嵌套

打印图形 其实就是打印若干行 每行打印若干个*

var lines = parseInt(prompt("请输入打印的行数"));
var stars = parseInt(prompt("请输入每行星星数"));
// 定义一个循环控制行数
for(var i=1; i<=lines; i++) {
	// 每行打印若干个*
	for(var j=1; j<=stars; j++) {
		document.write("*");
	}
	// 换行
	document.write("<br>");
}

打印图形 其实就是打印若干行 每行输出若干个空格和若干个*

行数空格数*数
i=041
i=133
i=225
i=312*i+1
// 定义一个循环 控制行数
for(var i=0; i<=4; i++) {
	// 首先打印若干个(4-i)空格
	for(var j=0; j<4-i; j++) {
		document.write("&ensp;");
	}           
	// 再打印若干个*(2*i+1)
	for(var k=0; k<2*i+1; k++) {
		document.write("*");
	}            
	// 换行
	document.write("<br/>");
}  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值