循环语句的运用
学习笔记
1.当循环语句 for语句,while语句
先判断,后循环
2.直到循环语句 do-while语句
先循环,后判断
for循环执行末尾循环体后将再次进行条件判断,若条件还成立,则继续重复上述循环,当条件不成立时则跳出当下for循环。
while循环当满足条件时进入循环,进入循环后,当条件不满足时,执行完循环体bai全部语句后再跳出(而不是立即跳出循环)
break ,立即退出循环体,后面的循环不再执行。
continue , 退出当前循环语句,然后再继续循环。
练习题
<script>
/* 找出100--999里面有多少个水仙花数,分别输出这些水仙花数? */
var a;
var b = 0;
var c = 0;
var d = 0;
for(a=100;a<=999;a++){
b = parseInt((a/100))%10 ;
c = parseInt((a/10))%10 ;
d = parseInt((a/1))%10 ;
if(a==b*b*b+c*c*c+d*d*d){
document.write(a+"<br/>");
}
}
</script>
<!-- 猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,
又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。 -->
<script>
var num = 1;
var a = 0;
for(a=1;a<10;a++){
num = 2*(num+1);
}
document.write(num);
</script>
<!-- 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。 -->
<script>
var num = 0;
var fenmu = 1;
var fenzi = 2;
var a = 0;
for(var i=1;i<=20;i++){
num +=fenzi/fenmu;
a = fenzi;
fenzi = fenmu+a;
fenmu = a;
}
document.write(num);
</script>
<!-- 小球从100米掉落,弹起到50米,然后再掉落,弹到25米,弹10次以后,小球经过的路径是多少米(截止第10次弹地6 -->
<script>
var num = 100;
var sum = 0;
for(var i=1;i<=10;i++){
sum += num;
num = num/2;
}
document.write(sum);
</script>
<!-- .有一队兵,他想知道有多少人,便让士兵排队报数:按从1至5报数,最末一个士兵报的数为1;按从1至6报数,
最末一个士兵报的数为5;按从1至7报数,最末一个士兵报的数为4;最后再按从1至11报数,最末一个士兵报的数为10。编程求韩信至少有多少兵?-->
<script>
var i = 1;
do {
i++;
if (i % 5 == 1 && i % 6 == 5 && i % 7 == 4 && i % 11 == 10) {
break;
}
} while (1) {
}
document.write(i);
</script>
作业题
<!-- 1.序列:1,2,3,5,8,13...。找出第20个数是多少?得出前20个数之和是多少? -->
<script>
var sum = 0;
var first = 1;
var last = 2;
var n = 0;
for(var i=1;i<=18;i++){
sum=first+last+sum;
n = last;
last = first+last;
first = n;
}
document.write(last);
document.write("<br/>")
document.write(sum);
</script>
<!-- 2:用*画等腰三角形
提示:画空格用 或者 
如:
*
***
*****
*******
-->
<script>
for(var i=0;i<=5;i++){
for(var j=i;j<=50;j++){
document.write(" ")
}
for(var n=0;n<=i;n++){
document.write("*"+" ");
}
document.write("<br/>")
}
</script>
<!-- 3:计算饭钱
有30个人,其中有男人、女人和小孩,在一家饭馆里吃饭 共花了500元,每个男人各花30元,
每个女人各花20元,每个小孩各花10元,问男人、女人和小孩各有几人? -->
<script>
for(var i=1;i<=16;i++){
for(var j=1;j<=25;j++){
for(var k=1;k<=30;k++){
if(i+j+k==30&&30*i+20*j+10*k==500){
document.write(`男人${i}个,女人${j}个,小孩${k}个`+"<br/>");
}
}
}
}
</script>
<!-- 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5。输入60=2*2*3*5。 -->
<script>
var a = parseInt(window.prompt("请输入一个正整数"));
for(var i=2;i<=a;i++){
while(a!=i){
if(a%i==0){
document.write(i+" ");
a=a/i;
}
else break;
}
}
document.write(a);
</script>