Цикл while

Воскресенье, 14 августа 2011 г.
Рубрика: JavaScript -> Циклы
Метки: | | | |
Просмотров: 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>
Поделиться...
twitter.com facebook.com vkontakte.ru mail.ru google.com bobrdobr.ru
Оставьте свой комментарий!

Используйте нормальные имена. Ваш комментарий будет опубликован после проверки.

Если вы уже зарегистрированы как комментатор, укажите пароль и свой действующий email.

(обязательно)