Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/454.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何计算一个变量并再次计数_Javascript - Fatal编程技术网

Javascript 如何计算一个变量并再次计数

Javascript 如何计算一个变量并再次计数,javascript,Javascript,我有一个var,我试图将它的值累加到100。当它达到100时,它应该返回到0。这是我的实验代码 var min = 0 - 1, max = 100 + 1, now = 0; var timer = setInterval(function(){ if(now <= max){ now++; console.log(now); }else if ( now >= min){ now--; consol

我有一个
var
,我试图将它的值累加到100。当它达到100时,它应该返回到0。这是我的实验代码

var min = 0 - 1,
max = 100 + 1, 
now = 0;
var timer = setInterval(function(){
    if(now <= max){
        now++;
        console.log(now);
    }else if ( now >= min){
        now--;
        console.log(now);
    }
},500);
var min=0-1,
最大值=100+1,
现在=0;
var timer=setInterval(函数(){
如果(现在=分钟){
现在--;
console.log(现在);
}
},500);
代码一直工作到它计数到100,但它不会将其计数回0,并反复重复相同的过程


谁能告诉我我做错了什么,或者我是否完全做错了。你能解释一下我应该用什么方法吗?

想想你在做什么。当计数上升到101时,它不会上升,因为if语句为false。所以你减少到100。但是在下一个循环中,第一个if语句再次为true,并且增加了


您可以在第一次减少时设置一个标志,并将该标志添加到第一个if条件中,这意味着一旦设置了标志,您就再也不会增加该值。

想想您在做什么。当计数上升到101时,它不会上升,因为if语句为false。所以你减少到100。但是在下一个循环中,第一个if语句再次为true,并且增加了

您可以在第一次减少时设置一个标志,并将该标志添加到第一个if条件中,这意味着一旦设置了标志,您就不会再增加该值。

请尝试以下操作:

var count = 'up';
var min = 0 - 1,
max = 100 + 1, 
now = 0;
var timer = setInterval(function(){
    if(count === 'up'){
        if(now <= max){
           now++;
        }
        else{
           count = 'down';
           now--;
        }
    }
    else{
       if(now >= min){
           now--;
        }
        else{
           count = 'up';
           now++;
        }
    }
    console.log('now: ' + now);
},500);
var计数='up';
var min=0-1,
最大值=100+1,
现在=0;
var timer=setInterval(函数(){
如果(计数=='up'){
如果(现在=分钟){
现在--;
}
否则{
计数='向上';
现在++;
}
}
log('now:'+now);
},500);
尝试此演示(计数到10以减少执行时间)

试试这个,请:

var count = 'up';
var min = 0 - 1,
max = 100 + 1, 
now = 0;
var timer = setInterval(function(){
    if(count === 'up'){
        if(now <= max){
           now++;
        }
        else{
           count = 'down';
           now--;
        }
    }
    else{
       if(now >= min){
           now--;
        }
        else{
           count = 'up';
           now++;
        }
    }
    console.log('now: ' + now);
},500);
var计数='up';
var min=0-1,
最大值=100+1,
现在=0;
var timer=setInterval(函数(){
如果(计数=='up'){
如果(现在=分钟){
现在--;
}
否则{
计数='向上';
现在++;
}
}
log('now:'+now);
},500);
尝试此演示(计数到10以减少执行时间)


使用变量
步骤=+1将更改为
步骤=-1一旦达到最大值:

var min = 0,
    max = 100,
    step = +1,
    now = 0; 

var timer = setInterval(function(){
    if(now >= max) {step = -1;}
    if(now <= min) {step = +1;}
    now += step;
    console.log(now);
}, 20);
var min=0,
最大值=100,
步骤=+1,
现在=0;
var timer=setInterval(函数(){
如果(现在>=max){step=-1;}

如果(现在使用变量
step=+1;
,一旦达到最大值,该变量将变为
step=-1;

var min = 0,
    max = 100,
    step = +1,
    now = 0; 

var timer = setInterval(function(){
    if(now >= max) {step = -1;}
    if(now <= min) {step = +1;}
    now += step;
    console.log(now);
}, 20);
var min=0,
最大值=100,
步骤=+1,
现在=0;
var timer=setInterval(函数(){
如果(现在>=max){step=-1;}

如果(现在)这是我的荣幸!这是我的荣幸!