Javascript.RU

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 последовательно принимают значения:

  1. n = 1, x = 1
  2. n = 2, x = 3
  3. n = 3, x = 6

После окончания третьего прохода, условие n < 3 более не верно, поэтому цикл завершается.


Автор: Гость (не зарегистрирован), дата: 24 ноября, 2009 - 15:23
#permalink

Как добавить возможность выхода по нажатию кнопки Отмена?


Автор: Илья Кантор, дата: 25 ноября, 2009 - 07:36
#permalink

Сам цикл while не предусматривает коммуникации между браузером и пользователем. Пока он выполняется, никакие события не сработают. Интерпретатор подхватит их только после окончания работы while.

Если у вас длинный цикл, то можно делать, скажем, по 1000 итераций за раз, и следующий запуск - через setTimeout. В таком случае между пачками итераций скрипт сможет обработать нажатие кнопки и отменить следующий запуск.


Автор: paratrooper1981, дата: 19 декабря, 2009 - 13:27
#permalink

А можно пример?


Автор: animatio, дата: 13 ноября, 2013 - 12:24
#permalink

Илья, не соглашусь с Вами.
a = true;
while(a){
a = prompt('Enter a');
console.log(a)
};
Здесь есть коммуникации, есть while.


Автор: Гость, дата: 19 января, 2011 - 04:42
#permalink

Прошу прощения за примитивный вопрос, но что значает "+=", а именно "х += n"? Просто не встречался с такой операцией.


Автор: Гость (не зарегистрирован), дата: 19 января, 2011 - 12:07
#permalink

сам нашел ответ в разделе операторы присваивания http://javascript.ru/assignment-operators


Автор: Оганнес (не зарегистрирован), дата: 22 марта, 2013 - 17:48
#permalink

"x+=n" равносилен выражению x=x+n;


Автор: GTG, дата: 21 апреля, 2013 - 14:13
#permalink

Есть ли замена циклу while с возможностью коммуникации между пользователем и браузером?


Автор: animatio, дата: 13 ноября, 2013 - 12:26
#permalink

А что бы Вы хотели, чтобы эта часть кода конкретно делала. Опишите, пожалуйста своими словами, уверен смогу предложить альтернативу.


Автор: Гость (не зарегистрирован), дата: 12 мая, 2013 - 14:28
#permalink

как с помощью операторов цикла посчитать сколько раз встречается последняя цифра в данном числе?заранее спасибо за ответ


Автор: animatio, дата: 13 ноября, 2013 - 13:03
#permalink

//Исходное число
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);

Пожалуйста))


Автор: Начинающий (не зарегистрирован), дата: 10 сентября, 2013 - 11:54
#permalink

Почему не работает этот код: while((new Date()).getSeconds()<60) alert("test"); ? Задумка - каждую секунду до истечения минуты выводить алерт.


Автор: Гость (не зарегистрирован), дата: 7 ноября, 2013 - 17:22
#permalink

while (new Date().getSeconds()<60) {alert("test")}


Автор: Гость (не зарегистрирован), дата: 1 июля, 2014 - 16:29
#permalink

Я бы сделал так:

function testalert()
{
intervalone = setInterval(function()
{
alert('test');
}, 1000);
setTimeout(function()
{
clearInterval(intervalone);
}, 60000);
}

Автор: Гость (не зарегистрирован), дата: 27 октября, 2015 - 15:57
#permalink

Не могу понять почему виснет такая конструкция:

var skip = false;
window.setTimeout(function() { skip = true; }, 1);
while (!skip) {}


Автор: Гость (не зарегистрирован), дата: 27 октября, 2015 - 18:58
#permalink

while (!skip) {} - это бесконечный цикл, вот он и вешает процесс. А setTimeout даже не начинает свою работу, код который вы написали будет выполняется последовательно, и после того как выполниться последняя инструкция, а она у вас бесконечный цикл, то только после неё запустится таймер. А так вы дали только задание браузеру, чтобы то запустил через миллисекунду функцию, но не даете ему сделать запуск таймера возможным!


Автор: Андрей38, дата: 19 августа, 2016 - 00:19
#permalink

Здравствуйте! Помогитите!Не могу решить задачу-после события onload="doSomething()" для ифрейма-возвращаться назад и добавлять еденичку в цикл:
-----------------------Сделал так-не работает! Но onload=alert('!!!') срабатывает!
news = здесь хранятся ссылки для ифреймов
var i = 0;
while (i < news.length) {
document.write(' ');
};
что здесь не так? Должно ведь работать..


Автор: Гость (не зарегистрирован), дата: 12 апреля, 2022 - 14:59
#permalink

Автор: Mnaisoa (не зарегистрирован), дата: 22 февраля, 2023 - 10:53
#permalink

I frequently watch them to learn knowledge and then play the hockey game
puppet hockey for fun because the information you provide is very helpful to me and everyone else.


Отправить комментарий

Приветствуются комментарии:
  • Полезные.
  • Дополняющие прочитанное.
  • Вопросы по прочитанному. Именно по прочитанному, чтобы ответ на него помог другим разобраться в предмете статьи. Другие вопросы могут быть удалены.
    Для остальных вопросов и обсуждений есть форум.
P.S. Лучшее "спасибо" - не комментарий, как все здорово, а рекомендация или ссылка на статью.
Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Разрешены HTML-таги: <strike> <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <u> <i> <b> <pre> <img> <abbr> <blockquote> <h1> <h2> <h3> <h4> <h5> <p> <div> <span> <sub> <sup>
  • Строки и параграфы переносятся автоматически.
  • Текстовые смайлы будут заменены на графические.

Подробнее о форматировании

CAPTCHA
Антиспам
1 + 0 =
Введите результат. Например, для 1+3, введите 4.
 
Поиск по сайту
Содержание

Учебник javascript

Основные элементы языка

Сундучок с инструментами

Интерфейсы

Все об AJAX

Оптимизация

Разное

Дерево всех статей

Последние комментарии
Последние темы на форуме
Forum