Цикл while
Воскресенье, 14 августа 2011 г.Рубрика: JavaScript -> Циклы
Метки: javascript | js | while | цикл | циклы
Просмотров: 420
Подписаться на комментарии по RSS
В этом уроке речь пойдёт о циклах.
Давайте попробуем понять что такое циклы.
Представьте что Вы бегаете по утрам, и например, бегаете по стадиону. Вы ставите перед собой цель пробежать 8 кругов длиной в один километр.
И Вы начинаете бегать, Вы пробегаете один круг, и у себя в голове отмечаете что пробежали один круг, после пробегаете второй, и отмечаете в голове что пробежали два круга, и года Вы пробегаете 8, то Вы останавливаетесь, так как Вы достигли нужного результата.
Получается что Вы циклически пробегали круги - то есть, Вы пробежали круг, потом снова повторили - то есть пробежали ещё один и так до определённого круга.
В программировании цикл - это повторение каких-то действий определённое кол-во раз.
То есть, заданные Вами действия будут повторятся, например, 10 раз. Или пока значение какой-нибудь переменной, не станет равно булевому значению true.
Сегодня мы рассмотрим один из циклов, цикл - while.
Этот цикл работает по системе - пока условие верно.
Он будет выполнять, пока заданное нами условие будет равно - true - будет верным, а как только оно нарушится, то цикл прекратит свою работу.
Записывается конструкция этого цикла так - while ( условие ) { действия }Если описать эту конструкцию на русском языке, то это будет выглядеть так - пока условие верно делай действия.
Давайте запишем простой пример, в котором мы будем в цикле выводить числа.
Для начала мы должны будем обозначить переменную для хранения чисел - i.
И цикл мы будем выполнять пока значение переменной i не станет равно 11.
В цикле мы будем выводить на экран значение переменной i. И после мы будем увеличивать переменную i.
И на экран будет выведена последовательность чисел от 1 до 10.
Почему до 10, если мы написали 11? А потому, что как только значение переменной станет равно 11, то цикл прекратится.
Можно вначале увеличивать значение переменной, а потом выводить и тогда можно будет написать такое условие - != 10.
Тогда выводится будет также.
Давайте так и запишем.
Вот код:
<script type="text/javascript">
var i = 0;
while ( i != 10 ) {
i++;
document.write ( i + "<br />" );
}
</script>
Давайте усложним конструкцию.
Теперь в цикле мы будем проверять условие, в котором проверим - если значение переменной i + 3 >= 20, то булевой переменной flag присвоим значение false, иначе будем выводить значение переменной i.
А в цикле будет условие - пока переменная flag == true, то будем на 1 увеличивать значение переменной i.
Вот код:
<script type="text/javascript">
var i = 0, flag = true;
while ( flag ) {
i++;
if ( i + 3 >= 20 ) {
flag = false;
} else {
document.write ( i + "<br />" );
}
}
</script>
У нас вывелись числа от 1 до 16.
Объясним почему - когда переменная i, стала равна 16, то мы проверили + 3 - не больше и не равно 20, то выводим, но когда она стала равна 17, то + 3 = 20, тогда мы не стали выводить значение нашей переменной.
Теперь поработаем с массивами.
Давайте сделаем поиск по массиву при помощи цикла.
Допустим у нас есть переменная - search - со значением для поиска.
И есть массив - скажем с названиями языков программирования.
И мы должны найти в этом массиве наше значение.
Если находим, то выводим номер элемента, и значение.
Если не находим, то выводим сообщение о том, что не нашли.
Пусть это будет Вашим заданием для закрепления материала.
Напишите такой код самостоятельно.
Вот решение этой задачи - но настоятельно рекомендуем попробовать сделать это самим.
<script type="text/javascript">
var search = "html", searchRes = false, i = -1;
var lang = ["html", "php", "ajax", "javascript", "mysql", "css", "perl"];
while ( ( searchRes == false ) && ( i != ( lang.length - 1 ) ) ) {
i++;
if ( lang[i] == search ) {
document.write ( "Позиция: " + i + ", искомый язык: " + lang[i] );
searchRes = true;
} else {
if ( i == ( lang.length - 1 ) ) {
document.write ( "Такого языка нет в базе" );
}
}
}
</script>

