JavaScript循环结构控制语句(while,for,do…while)的解析
循环语句
判断条件,只要满足条件,就会不断的从头到尾重复执行,直到不满足条件时,跳出循环
while (表达式){
当表达式 为true 时,执行语句,为false 不执行
}
循环次数由初始值,条件和变化量来决定
死循环出现的两种情况,1、条件不对,2、没有向条件外运行的过程
while循环有3个重要的部分,1、起始值,2、条件,3、向条件外允许的过程
条件 隐式转换为布尔值,进入循环必须依靠条件,跳出循环时,不一定依靠条件
var i=0,sum=0;
while(1){
if (i===5) break; // break 中断性跳出,满足if 条件 跳出整个循环,不再循环 相当于循环条件内置
sum+=i; // 所以 外层循环可以是死循环
i++;
}
var i=0,sum=0;
while(i++<10){ // continue 主要用于再循环中的连续内容,由需要错过一部分的情况
if (i===5) continue; // continue 遇到continue后,不在执行他后面的代码,跳出本次循环,直接开始下一次循环
sum+=i; // 注:要注意循环变量,不然容易出现死循环
}
同样的循环次数,while 执行起来比 for 更快
document.write(" ") // 在body内写入内容 如果字符串内容是标签,则再body内会直接变成对应标签
documen.write 和 innerHTML 都会重新打开DOM树写入内容,为避免降低效率,不要把他们写在循环结构中
双重循环
const ROW=10,
COL=10;
var i=0,j=0;
var str="<table>";
while(i<ROW){
str+="<tr>";
j=0;//双重循环时,内部循环需要重置
while(j<COL){
str+="<td>"+i+"*"+j+"="+(i*j)+"</td>";
j++;
}
str+="</tr>";
i++;
}
str+="</table>";
document.body.innerHTML=str;
案例:将0-9a-ZA-Z加在数组中:
var arr=[];
var str="09azAZ";
0-9 48-57
a-z 97-122
A-Z 65-90
console.log(str.charCodeAt(5));//获取第几位字符ascii值
console.log(String.fromCharCode(98));//将ascii转换为字符
案例:100以内的素数:
var i=2,j=2,bool;
while(i<100){
j=2;
bool=true;
while(j<i){
if(i%j===0){
bool=false;
break;
}
j++;
}
if(bool) console.log(i);
i++;
}
do{ }while() 先执行,再判断,至少执行一次语句
一般会将 进入条件和结束条件都写上,限定进入循环的起始条件和结束循环的条件
for(定义初始变量①;循环条件②;变量变化值④){ // 执行顺序为②③④②③④……
循环语句;③ // 定义初始变量只在进入循环前执行一次 小括号内的分号不可省略
}
①和④内 如果有多个语句内容,可以用逗号分隔开
循环条件如果有多个不能用逗号,只能使用 逻辑与&& 或者 逻辑或 ||
当没有条件时,默认是直接进入语句块,无限循环