循环辅助语句
break:跳出所在的switch 或者循环结构。
案例:判断素数
var n = Number(prompt("请输入一个自然数:"));
var m = Math.ceil(Math.sqrt(n));//根据相关数学定理,查找范围可缩减至{2,sqrt(n)}
var found = false;//找到因子的标记
for (vari = 2; i <=m; i++){
if (n % i == 0) {
found =true;
break;
}
}
alert(found?”不是素数”:”是素数”);
对100以内既不是3的倍数也不是5的倍数的数求和
* 思路一:
* (1)对{1,100}范围内逐个判断
* (2)如果满足条件就累加
* (3)输出和
* */ 常规思路,对满足条件的数累加
var sum = 0;
for(var n = 1; n <= 100;n++){
if(n%3 != 0 && n%5 !=0){
sum+=n;
}
}
alert(sum);
思路二:
* (1)对{1,100}范围内每个数重复步骤2,3
* (2)如果满足条件就放过
* (3)累加
* (3)输出和
将范围内不满足条件的跳过,其余的累加。
continue:结束本次循环,然后开启下一次循环
var sum = 0;
for (var n = 1; n <=100; n++) {
if (n % 3 == 0 || n % 5 == 0) {
continue;//结束本次循环
}
sum +=n;
}
alert(sum);
思路二的好处:结构清晰,也就是我们在进行数据处理之前,先把各种不符合条件的情况先排除,然后再处理符合条件的情况(这个一般是程序的主体)
如果循环体的主体代码的执行有两个前提条件,常规思路是这样写的:
for(….){
if(条件1){
if(条件2){
循环体主体代码(可能代码较多)
}else{
alert(“错误提示2”)
}
}else{
alert(“错误提示2”)
}
}
换另外一种思路来描述,是这样的
for(…){
if(!条件1){
alert(“错误提示1”)
continue;
}
if(!条件2){
alert(“错误提示2”)
continue;
}
循环主体代码
}
循环嵌套
为什么有循环的嵌套?
因为一件事情的内容需要重复做。而且这个事情要反复做。
什么时候用循环的嵌套?
两者没有直接关系:
一般有行数有列数并且两者之间存在关系的时候用循环的嵌套。
比如直角三角形的输出
for(var i= 1;i <= 4;i++){
for(j=1;j<i+1; j++){
document.write("*");
}
document.write("<br>");
}
等腰三角形的输出:
for(var i= 1;i <= n;i++){
for(var j=n-i;j>0; j--){
document.write("_");
}
for(var k =1;k<2*i-1;k++){
document.write("*");
}
document.write("<br>")
}