Цикл с двумя переменными?
Здравствуйте.
Можно ли организовать цикл с двумя переменными, н-р необходимо, чтобы обновлялось сразу несколько переменных for (i=0, a=5; i<=20; a<10; i++; a=a+5) {...}- возможна такая конструкция? Есть ли варианты это осуществить? Спасибо. |
for( var i=0, j=0 ; i < 10, j < 2 ; ++i, ++j ) {
alert( i + ' ' + j ); } почему нет? все работает |
for (var i=0, a=5; i<=20, a<10; i++, a+=5) {...} Обратите внимание на очередность запятых и ";". |
Андрей Параничев,
лучше бы ответил на 2 последних темы :)) |
Цитата:
function test(str) { for (var i = 0, j = s.length - 1; i < j; i++, j--) if (str[i] != str[j]) return false; return true; } |
Цитата:
|
Цитата:
Гуры яваскрипта, подскажите, запятая в js работает также, как в C++? Результатом будет последнее выражение в списке, т.е. в случае i < 10, j < 2 результат выражения должен быть true, когда j < 2? |
NightmareZ,
Именно так, как в си-подобных. var i = 100; var j = 5; if(i < 50, j < 15) alert(1); Я действительно не углядел условие i<=20, a<10. |
Так как писать то? через запятую или &&?
типа for( var i=0 && j=0 ; i < 10 && j < 2 ; ++i && ++j ) {...} ?? Спасибо. |
for (var i=0, a=5; i<=20 && a<10; i++, a+=5) {...} |
Цитата:
Т.е., например: 1, 2, 3 равно трём, true, false равно false, i < 10, j < 2 равно true тогда и только тогда, когда j < 2 (каково значение i - по барабану). А бинарный оператор && выполняет операцию "И" над своими операндами и возвращает полученный результат. Т.е., например, true && true равно true, а true && false равно false, кстати false && true тоже равно false. Вот. Теперь по поводу инструкции for. В ней есть три секции, разделённые точкой с запятой. В первой секции производится инициализация перед началом выполнения цикла. В твоём случае объявляем в нём несколько переменных. Никакое значение выражения в этой секции не используется. Посему, переменные можем определить через запятую. Во второй секции пишется условие. Если оно истинно (true), цикл будет выолнять очередную итерацию. В противном случае - программа пойдёт выполнятся дальше (после блока операторов цикла). Т.к. тебе нужно проверить истинность нескольких условий, то разделить их нужно оператором &&. Операторы (если есть) в третье секции исполняются каждый раз после очередной итерации цикла. Например, можно инкрементировать в ней переменные. Как и в первой секции, значение выражения не используется, нам нужно лишь выполнить подряд несколько операторов, посему перечисляем их через запятую. |
Часовой пояс GMT +3, время: 10:02. |