#javascript
#javascript
Вопрос:
Мой код хорошо работает до тех пор, пока не ожидается, что он вернет результат — он не суммирует ни одно из значений, введенных пользователем.
a = (prompt("a:"));
b = (prompt("b:"));
c = (prompt("c:"));
negativeSum = Number(0);
positiveSum = Number(0);
var test = [a, b, c];
for (i = 0; i < test.length; i ) {
if (isNaN(test[i])) {
alert(test[i] " : incorrect input.");
}
else
if (test[i] < 0) {
alert(test[i] " : positive.")
negativeSum = Number(test[i] );
}
else {
alert(test[i] " : positive.")
positiveSum = Number(test[i] );
}
}
alert(positiveSum " : sum of ve elements");
alert(negativeSum " : sum of -ve elements");
Комментарии:
1. Да, это дополнительная практическая работа для тех, кто хочет узнать больше о JS. Я просто выполняю несколько упражнений на нем, потому что я только начал изучать JS месяц назад!
Ответ №1:
разве сумма негативов не всегда меньше суммы позитивов? если вы говорите об абсолютной разнице. чем пытаться
if (test[i] < 0) {
alert(test[i] " : positive.")
negativeSum = Number(test[i]);
}
else {
alert(test[i] " : positive.")
positiveSum = Number(test[i]);
}
//after the loop
return Math.abs(negativeSum) > positiveSum;
Ответ №2:
Несколько вещей — в которых нет необходимости Number(0)
— достаточно просто использовать 0
.
Линия:
positiveSum = Number(test[i] );
Просто присваивает значение test[i]
1 (это то, что
делает оператор post increment) positiveSum
. Это не добавляет его к positiveSum
(то же самое верно для negativeSum
.
Это должно работать лучше:
negativeSum = 0;
positiveSum = 0;
var test = [a, b, c];
for (i = 0; i < test.length; i ) {
if (isNaN(test[i])) {
alert(test[i] " : incorrect input.");
}
else
if (test[i] < 0) {
alert(test[i] " : positive.")
negativeSum = test[i];
}
else {
alert(test[i] " : positive.")
positiveSum = test[i];
}
}
В моем коде строка:
negativeSum = test[i];
Эквивалентно:
negativeSum = negativeSum test[i];
Ответ №3:
Вы ничего не суммируете, вы увеличиваете каждое введенное вами число. Вам нужна положительная сумма = (каждое число).
Вы также должны преобразовать элемент в число, прежде чем выполнять сравнение с нулем и остальными.
Комментарии:
1. Он не просто увеличивает — он присваивает результат переменной, которая должна быть суммой, вместо того, чтобы добавлять ее к сумме.
2. @Oded Я знаю; Я предпочитаю не просто раздавать ответы, когда ясно, что кто-то только учится.