while循环
while 循环会在指定条件为真时循环执行代码块。
语法
while (条件)
{
需要执行的代码
}
实例
本例中的循环将继续运行,只要变量 i 小于 5
while (i<5)
{
x=x + "这个数是 " + i + "<br>"
i++
}
do/while循环
do/while 循环是 while 循环的变体
特点:先执行后判断,至少执行一次循环体
语法
do
{
需要执行的代码
}
while (条件);
实例
即使条件为 false 它也会执行一次,因为代码块会在条件被测试前执行:
var i = 1
var sum = 0
do {
sum += i
i++
} while (i <= 5)
document.write("这个值是" + sum)
比较For和While
For
var sum=0
// i++:i=i++
for(var i=0
sum=sum+i
}
document.write("1+2+3+4+...100的值是:" + sum);
while
var i = 1
var sum = 0
do {
sum += i
i++
} while (i <= 100)
document.write("1+2+3+....+100的值是" + sum)
思考题
1.百马驮百粮
大马驮2石粮食,中马驮1石粮食,两头小马驮一石粮食;要用100匹马,驮100石粮食,该如何分配 驮100石粮食,大马需要50匹
var a = 1;
while (a < 50) {
var b = 1;
while (b <= 100) {
var c = 100 - a - b;
if ((a + b + c == 100) || (2 * a + b + c / 2 == 100)) {
document.write("大马" + a + "中马" + b + "小马" + c + "<br />");
}
b++;
}
a++;
}
2.小明买牙刷
小明单位发了100元的购物卡,小明到超市买三类洗化用品,洗发水(15元),香皂(2元),牙刷//(5元)。要把100元整好花掉,可如有哪些购买结合?a=洗发水,b=香皂,c=牙刷 100元可以买6瓶洗发水
var a = 1
while (a <= 6) {
var b = 1
while (b <= 50) {
var c = 1
while (c <= 20) {
if (15 * a + 2 * b + c * 5 == 100) {
document.write("洗发水" + a + "香皂" + b + "牙刷" + c + "<br />")
}
c++
}
b++
}
a++
}
3.水仙花数
水仙花数是指一个 3 位数,它的每个位上的数字的 3次幂之和等于它本身x,(例如:1^3 + 5^3+ 3^3 = 153
var i=100;
while(i<1000){
var a = i % 10;//个
var b = parseInt(((i / 10) % 10));//十
var c = parseInt(i / 100);//百
if (a * a * a + b * b * b + c * c * c == i) {
document.write('水仙花数:' + i + '<hr/>');
}
i++;
}
4.猴子摘桃
公园里有一只猴子和一堆桃子,猴子每天吃掉桃子总数的一半,把剩下一半中扔掉一个坏的。到第七天的时候,猴子睁开眼发现只剩下一个桃子。问公园里刚开始有多少个桃子?最后一天剩下一个桃子
var a=1
var i=1
while(i<7){
a=(a*2)+2
i++
}
document.write("公园里刚开始有" + a +"个桃子")
景秀教育