如何解决不使用for语句的for循环
我正在尝试编写一个程序,在其中打印 1 个循环的递减量,因此如果值为 3,则输出应为 3,2,1。但是我从这段代码中得到的输出是 3,1,0。有什么办法可以解决这个问题吗?
function loop(value) {
while(greaterThanZero(value) == true) {
printValue(value);
value = reduceOne(value);
console.log(value);
value--;
}
}
var value = 3;
var greaterThanZero = function (n) {
return n > 0;
}
var reduceOne = function (n) {
return n - 1;
}
var printValue = function (n) {
console.log(n)
}
解决方法
你在每次迭代中做同样的事情两次(记录和递减)。删除两个重复的语句,这样您就可以立即突破,而不是一次进行两次。
function loop(value) {
while(greaterThanZero(value) == true) {
console.log(value);
value--;
}
}
var greaterThanZero = function (n) {
return n > 0;
}
loop(3)
该函数似乎按预期工作,但由于此 0
,您会看到 console.log(value)
。它只是在递减后记录该值
var value = 3;
var greaterThanZero = function(n) {
return n > 0;
}
var reduceOne = function(n) {
return n - 1;
}
var printValue = function(n) {
console.log(n)
}
function loop(value) {
while (greaterThanZero(value) == true) {
printValue(value);
value = reduceOne(value);
//console.log(value);
//value--;
}
}
loop(value)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。