老师,while循环和do-while循环判断的条件都一样,唯一的区别是do-while是先运行后判断,则会出现多一的现象,对吗
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>while语句算法</title>
</head>
<body>
<script>
var a = 1000;
var year = 0;
while(a <= 2000) {
a = a + a * 0.05;
year ++;
}
document.write(year);
var b = 1000;
var c = 0;
do {
a = a + a * 0.05;
year ++;
} while(a <= 2000);
document.write(year - 1);
</script>
</body>
</html>
正在回答 回答被采纳积分+1
同学你好,解答如下:
1、“while循环和do-while循环判断的条件都一样,唯一的区别是do-while是先运行后判断”这句理解是对的。
2、是否多一,不是固定的,要具体问题具体分析。要根据代码的写法,进一步分析。
比如:小明初始有0元,妈妈每天给他1块钱,他从来不花,问几天后,他的钱数会超过3块钱。通过口算得知,第4天就超过3块了(第3天有3块,不是超过3块)。此时如下两种写法,结果是一样的,不用减掉1:
var money1 = 0; var day1 = 0; while(money1 <= 3) { money1 = money1 + 1; day1 ++; } console.log(day1); var money2 = 0; var day2 = 0; do { money2 = money2 + 1; day2 ++; } while(money2 <=3); console.log(day2);
而同样的初始条件,问“哪天小明的钱数是小于0的(可能例子不太合理)”,那么如下写法结果就是不一样的,相差了1:
var money1 = 0; var day1 = 0; while(money1 <0) { money1 = money1 + 1; day1 ++; } console.log(day1); var money2 = 0; var day2 = 0; do { money2 = money2 + 1; day2 ++; } while(money2 <0); console.log(day2);
所以记住二者的区别就行,然后具体问题具体分析。
2-25这个习题,同学的do循环不用-1。
祝学习愉快!
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星