js循环
内容回顾
- 程序的执行结构
- 分支结构:if,switch
本章内容
- while, do...while循环
- for循环
- break,continue关键字
第一节 while 循环和do...while循环
1.while循环
循环:对于程序中某些特定的功能代码,需要在满足特定条件的情况下反复执行,知道条件不成立时结束。
语法:
while(条件表达式)
{
代码块;
}
<script type="text/javascript">
//定义计数变量
var i =1;
while(i<=10)
{
document.write("第"+i+"次我能行!!!<br>")
//计数变量加1
i++
}
document.write("程序结束,此时i="+i);
</script>
<script type/javascript>
//输出1-100
var i=1;
while(i<=100)
{
document.write(i+"<br>");
//注意:一定要进行计数变量的更新
i++;
}
</script>
//计算1-5 的和
<script type="text/javascript">
//计数变量
var i=1;
//求和变量
var sum=0;
while(i<=5)
{
//document.write(i+"<br>");
sum+=i;
i++;
}
document.write("1-5的和:"+sum);
</script>
2.do...while循环
do...while循环与while循环类似,区别在于while先判断条件,再执行代码。如果天剑不成立时,代码一次都不执行。do...while是先执行代码,再判断条件。所以,如果条件不成立时,代码至少会执行一次。
语法:
do
{
循环代码块;
}while(条件表达式);
![do...while 循环语法](img\do...while 循环语法.png)
<script type="text/javascript">
//定义计数变量
var i=1;
do{
document.write("第"+i+"次我能行<br>");
i++;
}while(i<=10);
document.write("程序结束,i="+i);
</script>
<script type="text/javascript">
var i=1;
var num=0;
do{
num+=i;
i++;
}while(i<=100);
docuemnt.write("1-100的和:"+num);
</script>
第二节 for循环
语法:
for(变量的初始值;条件表达式;变量更新)
{
循环代码块;
}
<script type="text/javascript">
//统计1-100的和
var num=0;
for(var i=1;i<=100;i++)
{
num+=i
}
document.write("1-100的和num="+num);
</script>
<script type="text/javascript">
//循环输入5个学生的分数,求总分和平均分
//定义总和变量
var sum=0;
for(var i=1;i<=5;i++)
{
var score =Number(prompt("请输入"+i+"个学生的分数:",""));
sum+=score;
}
document.write(sum+" "+ sum/5);
</script>
1.双重for循环输出九九乘法表
2.for循环小结
第三节 break和continue
break :在循环的过程中,在满足某些条件的情况下,中断循环的执行。 注意: switch 中的break用于结束某个分支。而循环中的 break 是中断循环的。 continue :在循环的过程中,在满足某些条件的情况下,跳过循环中的部分代码不执行,直接进入下次循环。
1.break
<script type="text/javascript">
for(var i=1;i<=5;i++)
{
if(i==3)
{
break
}
document.write("输出数"+i);
}
</script>
<script type="text/javascript">
//循环输入5个人的分数,求总分和平均分,
//如果分数输入有误,则结束输入,并输出错误提示
//如果所有分数都输入无误,则输出总分和平均分
var sum=0;
//定义标识变量,记录输入过程是否有错
var flag=true;
for(i=1;i<=5;i++)
{
var score =Number(prompt("请输入"+i+"个人的分数",""));
if(score<0 ||score>100){
flag=false;
break;
}
sum+=score;
}
if(flag){
document.write("输出总分"+sum+"平均分"+sum/5)
}else{
document.write("输入有误");
}
</script>
2.continue
<script type="text/javascript">
for(var i=1;i<=10;i++)
{
if(i==5){
coutinue;
}
document.write(i+"<br>");
}
</script>
<script type="text/javascript">
//统计80分以上的人数
var count=0;
for(i=1; i<=5;i++){
var score =Number(prompt("请输入第"+i+"个人的分数:",""));
if(score<80){
continue;
}
count++;
}
document.write("80分以上的人数"+count+"所占比例:"+(count/5)*100+"%");
</script>
总结:
- while和do...while都能实现固定次数和不固定次数的循环,但是while和do...while更适合做不固定次数的循环。
- while循环,先进行条件判断,再做代码的执行,而do...while先执行代码,再做条件判断。因此,do...while至少会执行一次代码
- for循环使用与固定次数的循环。
- break和continue可以修改循环的执行次序