Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Цикл с двумя переменными? (https://javascript.ru/forum/misc/1522-cikl-s-dvumya-peremennymi.html)

SunYang 06.08.2008 18:19

Цикл с двумя переменными?
 
Здравствуйте.
Можно ли организовать цикл с двумя переменными, н-р

необходимо, чтобы обновлялось сразу несколько переменных

for (i=0, a=5; i<=20; a<10; i++; a=a+5) {...}
- возможна такая конструкция? Есть ли варианты это осуществить?

Спасибо.

Виталий 06.08.2008 18:25

for( var i=0, j=0 ; i < 10, j < 2 ; ++i, ++j ) {
alert( i + ' ' + j );
}

почему нет? все работает

Андрей Параничев 06.08.2008 18:28

for (var i=0, a=5; i<=20, a<10; i++, a+=5) {...}

Обратите внимание на очередность запятых и ";".

Виталий 06.08.2008 18:32

Андрей Параничев,
лучше бы ответил на 2 последних темы :))

NightmareZ 06.08.2008 23:15

Цитата:

Сообщение от SunYang (Сообщение 4232)
Здравствуйте.
Можно ли организовать цикл с двумя переменными, н-р

....

возможна такая конструкция? Есть ли варианты это осуществить?

Конечно такое возможно. Например, с помощью такой функции можно определить, является ли строка палиндромом:
function test(str)
{
	for (var i = 0, j = s.length - 1; i < j; i++, j--)
		if (str[i] != str[j])
			return false;

	return true;
}

Kolyaj 06.08.2008 23:19

Цитата:

Сообщение от Виталий
i < 10, j < 2

А знаете ли вы, как работает оператор "запятая"? Зачем ее вообще в условии писать? Хотя бы уж так: i < 10 && j < 2.

NightmareZ 06.08.2008 23:23

Цитата:

Сообщение от Kolyaj (Сообщение 4264)
А знаете ли вы, как работает оператор "запятая"? Зачем ее вообще в условии писать? Хотя бы уж так: i < 10 && j < 2.

Кстати, да, не заметил этого :)

Гуры яваскрипта, подскажите, запятая в js работает также, как в C++? Результатом будет последнее выражение в списке, т.е. в случае
i < 10, j < 2

результат выражения должен быть true, когда j < 2?

Андрей Параничев 06.08.2008 23:25

NightmareZ,
Именно так, как в си-подобных.
var i = 100;
var j = 5;
if(i < 50, j < 15) alert(1);


Я действительно не углядел условие i<=20, a<10.

SunYang 07.08.2008 00:47

Так как писать то? через запятую или &&?
типа for( var i=0 && j=0 ; i < 10 && j < 2 ; ++i && ++j ) {...} ??
Спасибо.

Андрей Параничев 07.08.2008 01:08

for (var i=0, a=5; i<=20 && a<10; i++, a+=5) {...}


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