循环辅助语句
break 跳出所在的switck或循环结构
var n = Number(prompt(""));
var m =Math.ceil(Math.sqrt(n));//根据数学相关的定理,判断范围可缩小至[2,sqrp(n)]
var found = false;//找到因子的标记
for(vari=2; i<=m;i++){
if(n%i == 0){
found= true;
break;//找到则提前结束
}
}
alert(found?"不是素数":"是素数");
案例:对100以内即不是3的倍数也不是5的倍数的数求和
第一种思路:对满足条件的数累加
var n = Number(prompt(""));
var m =Math.ceil(Math.sqrt(n));//根据数学相关的定理,判断范围可缩小至[2,sqrp(n)]
var found = false;//找到因子的标记
for(vari=2; i<=m;i++){
if(n%i == 0){
found= true;
break;//找到则提前结束
}
}
alert(found?"不是素数":"是素数");
continue:结束本次循环,开启下一次循环
另一种不满足条件的就放过
var sum=0;
for(var n=1;n<=100;n++) {
if (n%3==0 || n%5==0) {
continue; //结束本次循环
}//skip跳跃
}
alert(sum)
第二种思路的好出是:结构清晰
也就是我们在进行数据处理之前,先把各种不符合打条件的情况排除了,然后再处理符合条件的情况(这个是程序的主体)
如果循环主体代码的执行有两个条件常规思路是这么写的,循环体主体代码较多,该程序的可读性较差。
换另一个思路来描述,是这样的
for(…….){
if(!条件1){
alert(”错误提示1”);
continue;
}
if(!条件2){
alert(”错误提示1”);
continue;
}
循环体主体代码
}
循环嵌套
为什么有循环的嵌套:
因为一件事情的内容需要重复去做,而且这个事情要反复做
什么时候用循环的嵌套:
两者有制约关系:
一般有行数有列数并且两者之间存在关系的时候用循环嵌套
比如直角三角形:
for(var i=1; i<10; i++){
for(var j=0; j<i; j++){
document.write("*");
}
document.write("<br>");
}
等腰三角形的输出
var num =10;
//每一行的空格数为总行数减去当前是第几行
//每一行的星星个数为当前*2-1
//循环条件行数小于等于10
for(vari=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>");
}