2016-02-20 6 views
0

Я пытаюсь научиться использовать цикл for() для подсчета целых чисел (целых чисел) от одного числа к другому. Вот мой код:Подсчет целых чисел в диапазоне

function processLoop(earlier,later) { 

    earlier = 0; 
    later = 0; 
    count = 0; 

    for (i = earlier; i <= later; i++) { 
     count = count + i; 
    }; 

    return count; 
}; 

У меня должны быть эти два параметра, но он не работает. Я чувствую, что я не достаточно ясно, так вот мои инструкции:

  1. В DESIGNER создать JavaScript 06.js с общей функцией: countIntegers() Там никакой HTML страницы. НИКАКИЕ СЛУЧАЯ СОБЫТИЙ.
  2. Функция получает два параметра. Они идут между (..).
  3. Используйте любые имена, которые вы хотите для параметров, но вы можете использовать описательные имена, как это: первых и последние
  4. сосчитать все целые числа от первого параметра second.Here вы просто рассчитывать вместо вычисления общего количества.
  5. Все, что вам нужно сделать, это использовать цикл for() и вернуть счетчик.
  6. Возвращает количество целых чисел. Используйте return, потому что это общая функция.

Я очень новичок в этом и не уверен, что я должен здесь делать. Спасибо за любую помощь ...

ответ

2

Вы устанавливаете свои параметры на ноль, независимо от того, что вы передаете.

Избавиться от этих линий.

Кроме того, для определения локальной переменной используйте var.

function processLoop(earlier,later) { 

    var count = 0; 

    for (var i = earlier; i <= later; i++) { 
     count = count + 1; 
    }; 

    return count; 
}; 
+0

спасибо за ответ, но я все еще получаю ошибку оценки ... Я отредактировал исходное сообщение с инструкциями о том, что мне нужно сделать ... Он должен учитывать расстояние в целых числах от двух целых чисел. Спасибо незнакомцу, я очень ценю это – user5953981

0

Если earlier и later предназначены для значения по умолчанию, которые могут быть установлены, если параметры передаются в функцию, можно использовать OR|| оператора. Вы также должны заменить ++count на номер count = count + i, чтобы вернуть разницу между earlier и later. Также заменен оператором < для оператора <=.

function processLoop(earlier, later) { 
 

 
    var earlier = earlier || 0, 
 
    later = later || 0, 
 
    count = 0; 
 
    // use `for` loop only if `earlier` does not equal `later` 
 
    // and `later` is greater than `earlier` 
 
    if (typeof earlier === "number" && typeof later === "number") { 
 
    if (earlier !== later && later > earlier) { 
 
     for (i = earlier; i < later; i++) { 
 
     ++count; 
 
     }; 
 
    } else { 
 
     return new Error("earlier is not greater than later") 
 
    } 
 
    return count; 
 
    } else { 
 
    return new TypeError("earlier or later is not a number") 
 
    } 
 
}; 
 

 
console.log("no parameters passed to processLoop:", processLoop() 
 
      , "\n10 passed as later:", processLoop(null, 10) 
 
      , "\ndifference between 25 and 50:", processLoop(25, 50) 
 
      , "\ndifference between 5 and 6:", processLoop(5, 6) 
 
      , "\ndifference between 1 and 1:", processLoop(1, 1) 
 
      , "\nearlier or later is not a number", processLoop("a", "b") 
 
      );

0

function processLoop(earlier,later) { 
 

 
    var count = 0; 
 

 
    for (i = earlier; i < later; i++) { 
 
     count++; 
 
    }; 
 

 
    document.getElementById("demo").innerHTML = count; 
 
};
<html> 
 
<body> 
 

 
<button onclick="processLoop(1,3)">Click me</button> 
 
<p id="demo"></p> 
 

 
</body> 
 
</html>

Не устанавливать значения параметров для zero внутри функции. Если вы хотите рассчитывать между earlier и later и не должны включать earlier, используйте i < later вместо i <= later.

function processLoop(earlier,later) { 

    count = 0; 

    for (i = earlier; i < later; i++) { 
     count++; 
    }; 

    return count; 
}; 
+0

В чем цель '<=' оператора? 'processLoop (1, 1)' будет писать '1' в' document', где входные числа равны? _ «Возвращает число целых чисел. Используйте return, потому что это общая функция». _ Никакое значение не возвращается из функции? – guest271314

+0

СПАСИБО !!! ЭТОТ ОДИН RAN 100% – user5953981

+0

@ user5953981 Функция не соответствует требованиям, описанным в оригинальной записи, и записывает неправильное значение в документ – guest271314

0

Вы должны экспериментировать с ответами, которые интерпретируют вопрос, потому что это немного расплывчатым. Если вы хотите считать целые числа между действительными числами x и y, действительно важно знать, открыт ли интервал или закрыт интервал.

Я не поддерживаю написание кода вообще, но в этом случае это лучший ответ. Следующий код подсчитывает целые числа в замкнутом реальном интервале [раньше, позже]:

function countIntegers(earlier, later) 
{ earlier = Math.ceil(earlier); 
    later = Math.floor(later); 
    for(var i = earlier, count = 0; i <= later; ++i, ++count); 
    return count; 
} 

Вы, возможно, придется посмотреть, что Math.ceil и Math.floor делать, а также экспериментировать с комбинациями открытых и закрытых интервалов, пока вы не найдете тот, который будет отмечен правильно. Наслаждайтесь :-)

Смежные вопросы