循环辅助语句:
就像游戏一样,循环也是要求有辅助的,但这里的辅助而并不属于循环本身。
第一个介绍的是break:跳出所在的switch或者循环结构(多用于否定思维判断)。
案例:素数判断(是不是很经典)
varn = Number(prompt("请输入一个自然数"));
varm =Math.ceil(Math.sqrt(n));//根据数学定理,判断范围可进一步缩小至【2,sqrt(n)】
varflag =false;
for(vari=2;i<=m;i++){
if(n % i == 0){
flag =true;
break;//找到则提前结束
};
};
alert(flag?"不是素数":"是素数");
break在这里的作用就是如果能够找到一个被能整除的数,就提前结束。如果不使用break,那么就必须找到全部的能被整除的数,
如果这样,是不是很浪费计算机资源?
再来给大家介绍一个continue:表示结束本次循环,开启下一次循环。
案例:对100以内既不是3的倍数,也不是5的倍数的数求和
常规思路是这样写的
var sun = 0;
for(var n=1; n<100;n++){
if(n%3==0 && n%5==0){
sum+=n;
}
}
alert(sum);
而continue思路是这样的
var sum = 0;
for(var n=1; n<100; n++){
if(n % 3 == 0 || n % 5 == 0){
continue;//结束本次循环
}
sum += n;
}
alert(sum);
请注意:这里的 if语句是“或”
如果n只是满足其中一个条件,那么就结束本次循环,去进行下次循环
continue和break的区别就是,break结束整个循环,而continue是结束本次循环,开启下次循环。
这种思路的好处是:结构清晰,也就是我们在进行数据处理之前,先把各种不符合条件的情况先排除,然后在处理符合条件的情况
(这个一般是程序的主体)
如果循环的主体代码的实行有两个前提条件,常规思路如下:
for(){
If(){
If(){
}
}
}
这种循环主体代码较多,程序的可读性较差。
那么我们可以换种思路:
For(){
If(!条件1){
Alert(“错误提示1”)
Continue;
}
If(){
Alert(“错误提示1”)
}
循环体主体代码
}
循环嵌套;
为什么要有循环嵌套:
因为一件事情的内容需要重复做,而且这个事情要重复做。
什么时候用循环的嵌套:
一般有行数和列数并且两者之间存在关系时候用循环的嵌套。
比如等腰三角形的输出
for(var i=1; i<=9; i++){
for(var j=1; j<=i; j++){
document.write("*");
}
document.write("</br>");
}
等腰三角形的输出:
for(var i=1; i<num; i++){
for (var j = num - i; j > 0; j--) {
document.write(" ");
}
for (var k = 1; k <= i * 2 - 1; k++) {
document.write("*")
}
document.write("<br>");
两者有制约关系
一个是全局把控 另一个是细节的填充