本文最后更新于 2025-01-10T22:20:33+08:00
循环语句
while语句
通过循环语句可以反复的执行一段代码多次
1 2 3 4 5 6 7 8 9 10 11 12
| while循环: - 语法: while(条件表达式){ 语句... } - while语句在执行时, 先对条件表达式进行求值判断, 如果值为true,则执行循环体, 循环体执行完毕以后,继续对表达式进行判断 如果为true,则继续执行循环体,以此类推 如果值为false,则终止循环
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| do...while循环 - 语法: do{ 语句... }while(条件表达式) - 执行流程: do...while语句在执行时,会先执行循环体, 循环体执行完毕以后,在对while后的条件表达式进行判断, 如果结果为true,则继续执行循环体,执行完毕继续判断以此类推 如果结果为false,则终止循环 实际上这两个语句功能类似,不同的是while是先判断后执行, 而do...while会先执行后判断, do...while可以保证循环体至少执行一次, 而while不能
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
while(true){ alert(n++);
if(n == 10){ break; } }
|
while练习1
假如投资的年利率为5%,试求从1000块增长到5000块,需要花费多少年
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript">
var money = 1000; var count = 0; while(money < 5000){ money *= 1.05; count++; } console.log("一共需要"+count+"年"); </script> </head> <body> </body> </html>
|
while练习2
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title>if练习1</title> <script type="text/javascript">
while(true){ var score = prompt("请输入小明的期末成绩(0-100):"); if(score >= 0 && score <= 100){ break; } alert("请输入有效的分数!!!"); } if(score > 100 || score < 0 || isNaN(score)){ alert("拉出去毙了~~~"); }else{ if(score == 100){ alert("宝马,拿去~~~"); }else if(score >= 80){ alert("手机,拿去玩~~~"); }else if(score >= 60){ alert("参考书,拿去看~~~"); }else{ alert("棍子一根~~"); } } </script> </head> <body> </body> </html>
|
for循环
for语句,也是一个循环语句,也称为for循环、
1 2 3 4
| 在for循环中,为我们提供了专门的位置用来放三个表达式: 1.初始化表达式 2.条件表达式 3.更新表达式
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| for循环的语法: for(①初始化表达式;②条件表达式;④更新表达式){ ③语句... } for循环的执行流程: ①执行初始化表达式,初始化变量(初始化表达式只会执行一次) ②执行条件表达式,判断是否执行循环。 如果为true,则执行循环③d 如果为false,终止循环 ④执行更新表达式,更新表达式执行完毕继续重复② for循环中的三个部分都可以省略,也可以写在外部 如果在for循环中不写任何的表达式,只写两个; 此时循环是一个死循环会一直执行下去,慎用 for(;;){ alert("hello"); }
|
for循环的嵌套:
以99乘法表为例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript">
for(var i=1 ; i<=9 ; i++ ){ for(var j=1 ; j<=i ; j++){ document.write("<span>"+j+"*"+i+"="+i*j+"</span>"); } document.write("<br />"); } </script> <style type="text/css"> body{ width: 2000px; } span{ display: inline-block;//使式子对齐(通过设置span的宽度) width: 80px; } </style> </head> <body> </body> </html>
|
break和continue关键字
break
break关键字可以用来退出switch或循环语句
不能在if语句中使用break和continue
1 2 3 4 5 6 7
| for(var i=0 ; i<5 ; i++){ console.log(i); if(i == 2){ break; } }
|
break关键字,会立即终止离他最近的那个循环语句
1 2 3 4 5 6 7 8 9 10 11 12
| * 可以为循环语句创建一个label,来标识当前的循环(给循环指定名字) * label:循环语句 * 使用break语句时,可以在break后跟着一个label, * 这样break将会结束指定的循环,而不是最近的 outer: for(var i=0 ; i<5 ; i++){ console.log("@外层循环"+i) for(var j=0 ; j<5; j++){ break outer; console.log("内层循环:"+j); } }
|
continue
continue关键字可以用来跳过当次循环
同样continue也是默认只会对离他最近的循环循环起作用
for循环练习1:100以内奇数和
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript">
for(var i=1 , sum=0 ; i<=100 ; i++){ if(i%2 != 0){ sum = sum+i; } } console.log("奇数之和为 : "+sum); </script> </head> <body> </body> </html>
|
for循环练习2:打印1-100之间所有7的倍数的个数及总和
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript">
var sum = 0; var count = 0; for(var i=1 ; i<=100 ; i++){ if(i % 7 == 0){ sum += i; count++; } } console.log("总和为:"+sum); console.log("总数量为:"+count); </script> </head> <body> </body> </html>
|
for循环练习3:水仙花数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> /* * 水仙花数是指一个3位数,它的每个位上的数字的3 次幂之和等于它本身。 (例如:1^3 + 5^3 + 3^3 = 153),请打印所有的水仙花数。 */ //打印所有的三位数 for(var i=100 ; i<1000 ; i++){ //获取i的百位 十位 个位的数字 //获取百位数字 var bai = parseInt(i/100); //获取十位的数字 var shi = parseInt((i-bai*100)/10); //获取个位数字 var ge = i % 10; //判断i是否是水仙花数 if(bai*bai*bai + shi*shi*shi + ge*ge*ge == i){ console.log(i); } } </script> </head> <body> </body> </html>
|
for循环练习4:判断质数
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <script type="text/javascript"> /* * 在页面中接收一个用户输入的数字,并判断该数是否是质数。 质数:只能被1和它自身整除的数,1不是质数也不是合数,质数必须是大于1的自然数。 */ var num = prompt("请输入一个大于1的整数:"); //判断这个值是否合法 if(num <= 1){ alert("该值不合法!"); }else{ //创建一个变量来保存当前的数的状态 //默认当前num是质数 var flag = true; //判断num是否是质数 //获取2-num之间的数 for(var i=2 ; i<num ; i++){ //console.log(i); //判断num是否能被i整除 if(num % i == 0){ //如果num能被i整除,则说明num一定不是质数 //设置flag为false flag = false; } } //如果num是质数则输出 if(flag){ alert(num + "是质数!!!"); }else{ alert("这个不是质数") } } </script> </head> <body> </body> </html>
|