while
Задает цикл, который выполняется до тех пор, пока условие верно. Условие проверяется перед каждой итерацией.
Синтаксис
while (condition)
statement
Аргументы
- condition
- Условие цикла
-
- statement
- Блок или javascript-вызов для выполнения во время итераций
-
Описание, примеры
Следующий цикл будет повторяться до тех пор, пока n меньше трех.
n = 0
x = 0
while (n < 3) {
n ++
x += n
alert("n="+n+", x="+x)
}
При каждой итерации цикл увеличивает n и прибавляет к x . Переменные x и n последовательно принимают значения:
n = 1 , x = 1
n = 2 , x = 3
n = 3 , x = 6
После окончания третьего прохода, условие n < 3 более не верно, поэтому цикл завершается.
|
Как добавить возможность выхода по нажатию кнопки Отмена?
Сам цикл
while
не предусматривает коммуникации между браузером и пользователем. Пока он выполняется, никакие события не сработают. Интерпретатор подхватит их только после окончания работыwhile
.Если у вас длинный цикл, то можно делать, скажем, по 1000 итераций за раз, и следующий запуск - через setTimeout. В таком случае между пачками итераций скрипт сможет обработать нажатие кнопки и отменить следующий запуск.
А можно пример?
Илья, не соглашусь с Вами.
a = true;
while(a){
a = prompt('Enter a');
console.log(a)
};
Здесь есть коммуникации, есть while.
Прошу прощения за примитивный вопрос, но что значает "+=", а именно "х += n"? Просто не встречался с такой операцией.
сам нашел ответ в разделе операторы присваивания http://javascript.ru/assignment-operators
"x+=n" равносилен выражению x=x+n;
Есть ли замена циклу while с возможностью коммуникации между пользователем и браузером?
А что бы Вы хотели, чтобы эта часть кода конкретно делала. Опишите, пожалуйста своими словами, уверен смогу предложить альтернативу.
как с помощью операторов цикла посчитать сколько раз встречается последняя цифра в данном числе?заранее спасибо за ответ
//Исходное число
var newNum = 12345622245632,
//преобразуем число в строку
stringNum = '' + newNum,
//последний символ нашей строки
lastChar = stringNum.charAt(stringNum.length - 1),
//счетчик для цикла
i = 0,
//количество совпадений
numOfMathches = 0;
//пока это не последний символ строки
while(i != stringNum.length){
//если символ подномером i равен последнему символу...
if(stringNum.charAt(i) == lastChar){
//...то увеличим число совпадений на еденицу
numOfMathches++;
}
//увеличиваем на еденицу счетчик
i++;
}
//По окончании цикла выводим результат в консоль
console.log(numOfMathches);
Пожалуйста))
Почему не работает этот код: while((new Date()).getSeconds()<60) alert("test"); ? Задумка - каждую секунду до истечения минуты выводить алерт.
Я бы сделал так:
Не могу понять почему виснет такая конструкция:
var skip = false;
window.setTimeout(function() { skip = true; }, 1);
while (!skip) {}
while (!skip) {} - это бесконечный цикл, вот он и вешает процесс. А setTimeout даже не начинает свою работу, код который вы написали будет выполняется последовательно, и после того как выполниться последняя инструкция, а она у вас бесконечный цикл, то только после неё запустится таймер. А так вы дали только задание браузеру, чтобы то запустил через миллисекунду функцию, но не даете ему сделать запуск таймера возможным!
Здравствуйте! Помогитите!Не могу решить задачу-после события onload="doSomething()" для ифрейма-возвращаться назад и добавлять еденичку в цикл:
-----------------------Сделал так-не работает! Но onload=alert('!!!') срабатывает!
news = здесь хранятся ссылки для ифреймов
var i = 0;
while (i < news.length) {
document.write(' ');
};
что здесь не так? Должно ведь работать..