for循环:
for(循环需要变量的初始值;循环的条件(当满足条件时执行语句块);变量不断向条件外变化)
1、循环需要变量的初始值仅执行一次,并且不一定需要使用var
2、循环的条件是一个表达式,隐式转换为布尔值,为真时进入语句块,根据循环次数判断多少次
3、变量不断向条件外变化(这个理解比较片面)。每次循环完成后执行的语句内容
关于for的死循环:
for(;;){
}
用for循环写出0-100以内数相加的和
var sum=0;
for(var i=1;i<100;i++){
sum+=i;
}
console.log(sum);//4950 */
/* //普通的深度遍历:
var obj={
value:1,
link:{
value:2,
link:{
value:3,
link:{
value:4,
link:{
}
}
}
}
}
用for循环写深度遍历:
for(;obj.link;obj=obj.link) console.log(obj.value);
用for循环写出一个0-100以内的所有质数
for(var i=2,j,bool;i<100;i++){
for(j=2,bool=true;j<i;j++){
if(i%j===0){
bool=!bool;
break;
}
}
if(bool) console.log(i);
}
用for循环写出一个十行十列的表格:
var row=10,col=10;
var str="<table>";
for(var i=0;i<row;i++){
str+="<tr>";
for(var j=0;j<col;j++){
str+="<td></td>";
}
str+="</tr>";
}
str+="</table>";
//document.write(str);
document.body.innerHTML+=str;
用for循环写一个水仙花数:
for(var i=100,a,b,c;i<1000;i++){
a=parseInt(i/100);
b=parseInt(i/10)%10;
c=i%10;
if(a*a*a+b*b*b+c*c*c===i) console.log(i);
}
用for循环写一个菱形:
var row=10,col=20;
for(var i=0;i<row;i++){
if(i<5){
for(var k=row-i-1;k>=0;k--){
document.write(" ");
}
for(var j=0;j<i*2-1;j++){
document.write("*");
}
}else{
for(var k1=0;k1<i;k1++){
document.write(" ");
}
for(var j1=(row-i-1)*2;j1>=0;j1--){
document.write("*");
}
}
document.write("<br>")
}
用for循环写一个倒序的字符串
var str="abcdefghijk";
var s='';
for(var i=str.length-1;i>=0;i--){
//length-1是因为索引是从0开始的
s+=str[i];
}
console.log(s);//kjihgfedcba
注意:
注意当进行从大到小循环时,条件注意使用=的问题
在双重循环时,不要在内层中判断外层变量或者改变外层变量
如果使用break,不写跳出label,它进跳出当前层循环
循环是同步的
循环不能此处超过10亿次,循环不能嵌套太多,一般不超过2层