需要注意的点:
for 循环
1.初始值
2.条件判断
3.状态改变
4.循环体
for(var 1.i=0;2.i<10;3.i++ )
{
4.alert();
}
i++先对i执行再加1(比较常用);++i是先加1,再执行;
顺序是:1. 2. 4. 3;
3. 2. 4.
5.注意编码的写的格式,不要写乱了
6.break:跳出整个循环;continue:跳出当前循环;
例题
1.偶数(10以内)
for( var i=0; i<=10; i++) { if( i%2==0) { alert(i); } }
i是循环的次数,偶数除以2余数是0的话就是属于偶数。
2.奇数 (10以内)
for( var i=0; i<=10; i++) { if( i%2==1) { alert(i); } }
i是循环的次数,偶数除以2余数是1的话就是属于奇数。
以上两题for的作用是筛选的意思,把想需要的数值筛选出来。
3.累加求和 0到100;
var a = 0; for( var i=0; i<=100; i++) { a=a+i; } alert(a);
把a重新赋值,a表示的就是和。思路是:{ 1.i=0,a=0; 2.i=1,a=0+1; 3.i=2,a=0+1+2}
4.100以内与7有关的数
for( var i=0;i<100; i++) { if( i%7==0||i%10==7||parseInt(i/10)==7) { alert(i); } }
条件是:可以让7整除的,可以除10余着7,可以除10(比如:71/10,72/10),把其强制转换成整型,也就是说只保留小数点前面的7。
for也是在筛选数。
5.乘法口诀
1*1=1;1*2=2;1*3=3;1*4=4;……
2*2 2*3……
3*3 3*4……
i代表的是被乘数,j代表的是乘数。
for( var i=1;i<10;i++) { for(var j=i;j<10;j++) { if(j>=i) { alert(i+"*"+j); } } }
思路:{ i=1,j=1; j再循环,变为2,此时i还是1,只有当j不再满足条件j<10时,i再次循环,以此类推。其中if(j>=i)这个条件
是为了防止重复出现1*2,2*1}
总结:用到了if的嵌套。
6.求10以内的积
var cj =1; for( var i=1;i<=10;i++) { cj=cj*i; } alert(cj);
思路:相当于求10的阶乘,1*2*3……*10;{ cj代表的是乘积的意思,i=1,cj=1*1;i=2,cj=1*2;i=3,cj=1*2*3……} 总结:给它一个转换值。 以上这些题,都需要先想一下最后题目想要什么结果,依据这个结果,再去想如何用比较的方法,还是写一个表达式来进行循环计算。
7. 蓝球弹起的高度
篮球从10米高的地方落下,每次弹起的高度是原来的0.3倍,问弹跳10次之后篮球的高度。
var h=10; for(var i=1;i<=10;i++) { h=h*0.3; } alert(h);
总结:i其实是循环的次数,不要把问题想复杂,不是把计算结果算出,而是把它的计算过程写出来。
8.棋盘放粮食
棋盘有32个格子,第一个格子放1个芝麻,第二个放2个,第三个放4个,第四个放8个。。。每个芝麻的重量为0.00001kg,如果要放满整个棋盘,需要多少重量的芝麻。
var a = 1; var sum = 1; for( var i=1;i<32;i++) { a=a*2; sum=sum+a; } var zhong = sum*0.00001 alert(zhong);
思路:要求放满整个棋盘的芝麻需要的重量,要先求放满整个棋盘所需要的芝麻数,再乘以每个芝麻的重量。其中,a代表的是每个格子里要放的芝麻,sum代表的是放满要多少个芝麻。{i=1,a=2,sum=3;i=2,a=2*2,sum=3+4;……以此类推,其中i<32,是因为i是从1开始的,第32次就已经算完了}
9.凑钱1,2,5凑20元钱有多少可能
1元 20 2元 10 5元 4
var sum = 0; for(var a = 0;a<21;a++) { for(var b=0;b<11;b++) { for(var c=0;c<5;c++) { if(a*1+b*2+c*5==20 ) { sum=sum+1; } } } } alert(sum);
思路:用到了for的嵌套,如果都为1元的,一共是20张。都是2元的,一共是10张。都是5元的,一共是4张。sum代表的是最后的可能次数。
{ a=0,b=0,c=0,c再循环,c循环完了,是b循环(b=1,c=0;b=1,c=1……依次循环),然后同理是a循环。}
10.括号里面只能放加或减,如果要使等式成立,括号里面应该放什么运算符
12()34()56()78()9 = 59
for( var a=-1;a<2;a=a+2) { for( var b=-1;b<2;b=b+2) { for( var c=-1;c<2;c=c+2) { for( var d=-1;d<2;d=d+2) { if(12+a*34+b*56+c*78+d*9==59) { alert(a+","+b+","+c+","+d); } } } } }
总结: i++其实代表的是i+1;a,b,c,d的值只能是1,-1,1相当于是+一个数,-1相当于减去一个数,取值范围:a<2,b<2,c<2,d<2;