
12.03.2010, 21:47
|
|
Постоянный
Регистрация: 30.08.2007
Сообщений: 773
С нами:
9840758
Репутация:
808
|
|
Сообщение от оlbaneс
да через алерт работает, но у меня другой случай - ввод данных в форму и вывод через document
вот сам скрипт без хтмл
Код:
function two()
{
var a=0;
x = document.forms[0].elements['x'].value;
x+=1;
for (var i=0; i<x; i++){ a+=i;}
document.getElementById('qqq').innerHTML = 'Результат ='+a ;
}
а что оно выводит я писал выше. какая-то безумная магия. 
x - это строка. Соответственно при (x += 1) происходит не сложение, а конкатенация и получается "11" вместо 2 и т. п. При сравнении (i < x) оба аргумента преобразуется к числовому типу (этого не происходит только если с обеих сторон - строки). Далее всё достаточно очевидно.
Кстати, это называется арифметическая прогрессия и её сумма считается без циклов.
|
|
|