微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

不使用for语句的for循环

如何解决不使用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 举报,一经查实,本站将立刻删除。