2016-10-05 2 views
-1

Я нахожусь в процессе создания простого файла javascript, который отсчитывает от 20 до 0. Я застрял на том, как его исправить. Вот мой код, любая помощь действительно оценена!Javascript Count Down

var count; 
 
    document.write("Starting Loop" + "<br />"); 
 
    for (count = 20; count <= 0; count++) { 
 
    document.write("Current Count : " + count + "<br/>"); 
 

 
    //document.write("<br />"); 
 
    } 
 

 
    document.write("Loop stopped!");

+0

'для (кол = 20; счетчик <= 0; рассчитывать ++)'. Проблема 1: вы проверяете, равен ли счет меньше нуля или равен нулю. Проблема 2: вы * увеличиваете * 'count' – j08691

+0

Вы ищете возможность обратного отсчета. Что вы делаете с переменной count в вашем for-loop? –

ответ

3

трех положений в для цикла сказать следующую вещь (по порядку):

  • Каковы начальные значения?
  • Как долго я буду продолжать?
  • Что я могу изменить каждую итерацию?

В вашем конкретном случае вы начинаете отсчет в 20, вы продолжаете в цикле, если количество меньше или равно 0, и вы добавляете 1 к счету каждый время его петли. Поскольку второе предложение оценивается как false, цикл for не будет работать!

Что вы ищете должно быть больше, как это:

for (count = 20; count >= 0; count--) 

Это запустит счетчик на 20, продолжаться до тех пор, пока значение счетчика больше или равно 0, и вычесть 1 из подсчета на каждой итерации.

Собираем все вместе ...

var count; 
 
document.write("Starting Loop" + "<br />"); 
 

 
for (count = 20; count >= 0; count--) { 
 
    document.write("Current Count : " + count + "<br/>"); 
 
} 
 

 
document.write("Loop stopped!");

+0

Ahh спасибо! Это имеет смысл, мой код работает гладко. Очень признателен! – Marie

1

Вы вопрос счетчик неправильно. У вас есть

for(count = 20; count <= 0; count++) 

Это говорит старт на count = 20, пока счетчик не будет меньше или равно нулю, добавьте 1 подсчитывать каждый раз. В этом нет смысла.

Вот что вы должны использовать.

document.write("Starting Loop" + "<br />"); 
 
    for (var count = 20; count >= 0; count--) { 
 
     document.write("Current Count : " + count + "<br/>"); 
 

 
     //document.write("<br />"); 
 
    } 
 

 
    document.write("Loop stopped!");

+0

Благодарим за помощь! Это скорректировало мой код на 100%! – Marie

2

Вы можете использовать setTimeout и рекурсивную функцию.

setTimeout принять два параметра, выполняемую функцию и время в мс до выполнения. Здесь вы можете выбрать задержку между каждой итерацией.

var counter=20; 
 
function countdown(counter) 
 
{ 
 
    if(counter>0) 
 
    { 
 
     counter--; 
 
     setTimeout(function(){countdown(counter)},1000); 
 
     console.log(counter); 
 
    } 
 
} 
 

 
countdown(counter);

+0

Это, безусловно, отсчет во времени!Единственные два изменения, которые я сделал бы, это проверить, является ли счетчик больше, чем 0, а не равным 0, и я должен избегать оператора 'counter --' и вместо этого вызывать' countdown (counter-1) 'внутри метода setTimeout. Тем не менее, честно говоря, это будет личное предпочтение! –

+0

Я предпочитаю 'counter -': p. Но вы правы 'counter> 0' лучше – Alexis