Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   помогите с цыклами плиз (https://javascript.ru/forum/dom-window/7521-pomogite-s-cyklami-pliz.html)

solistcomru 06.02.2010 12:18

помогите с цыклами плиз
 
Вот читал по книге цыклы. там приводится такой пример:
while(total < 10)
{n++;
total+=names[n];}
Описание к примеру такое: В этом цыкле также используется счетчик, определяющий номера элементов массива. Вместо того чтобы прекратиться при достижении счетчика определенного значения, цыкл прерывается, когда сумма значений массива, становится больше 10.

Я решил опробовать. И написал следующее.

new Array(40);
names[0] = "Даша";
names[1] = "Даша";
names[2] = "Ваня";
names[3] = "Серый";
names[4] = "Кукда";
names[5] = "Леня";
names[6] = "Леня";
names[7] = "Леня";
names[8] = "Леня";
names[9] = "Леня";
names[10] = "Леня";
names[11] = "Леня";
names[12] = "Леня";

total = 0;
while(total < 10)
{n++;
total+=names[n];
document.write(names[n]);}

Скажите, что не так?:cray:

PeaceCoder 06.02.2010 13:28

Проблема в том, что Вы не понимете смысла оператора +=
В примере, по ходу, массив содержал числа, в Вашем же примере содержаться слова и оператор += работает как конкатенация, т.е. соединение строк, а не суммы чисел. А сравнение строки с числом бессмысленно.
total = 0;
while(n < 10)
{n++;
total+=names[n];
document.write(names[n]);}

JsLoveR 07.02.2010 14:57

var names=new Array(40);
names[0] = "Даша1";
names[1] = "Даша2";
names[2] = "Ваня";
names[3] = "Серый";
names[4] = "Кукда";
names[5] = "Леня1";
names[6] = "Леня2";
names[7] = "Леня3";
names[8] = "Леня4";
names[9] = "Леня5";
names[10] = "Леня6";
names[11] = "Леня7";
names[12] = "Леня8";
var n=0;
while(n <10)
{
  n++;
  document.write(names[n]+'<br/>');
}

JsLoveR 07.02.2010 15:02

Цитата:

Сообщение от solistcomru (Сообщение 43747)
new Array(40);

У Вас массив names не объявлён, переменная n - не объявлёна, + вы пытаетесь числовое значение соединить со строковым.


Часовой пояс GMT +3, время: 03:41.