|
Программирование >> Программирование с использованием ajax
Рис. 4.7. Вывод модифицированного приложения Ch04Ex05 Подобная проверка правильности, или верификация, вводимых пользователем данных становится довольно важным аспектом, когда дело доходит до дизайна приложения, и в настоящей книге будет встречаться немало примеров ее применения. Циклы for Последним типом цикла, который осталось рассмотреть в главе, является for. Цикл этого типа выполняется определенное количество раз и обладает собственным счетчиком. Для определения цикла for требуется описанная ниже информация: □ начальное значение для инициализации переменной, играющей роль счетчика; □ условие для продолжения цикла, в котором участвует переменная-счетчик; □ операция, которая должна выполняться над переменной-счетчиком в конце каждого цикла. Например, при желании создать цикл for и сделать так, чтобы значение его счетчика увеличивалось на 1 с 1 до 10, в качестве начального значения потребуется указать 1, в качестве условия - то, что значение счетчика должно быть меньше или равно 10, а в качестве операции, которая должна выполняться в конце каждого такого цикла - инкремент счетчика на 1. Вся эта информация должна размещаться в структуре цикла loop следующим образом: for {<инициализация>; <условие>; <операция>) { <код, подлежащий выполнению в цикле> Работать этот цикл будет точно так же, как и показанный ниже цикл while: < инициализация> while {<условие>) { <код, подлежащий выполнению в цикле> <операция> Формат цикла for, однако, делает код более удобным для восприятия, поскольку его синтаксис подразумевает задание всех деталей цикла в одном месте, а не разнесение его по нескольким операторам и их размещение в разных частях кода. Как использовать циклы do и while для вывода чисел от 1 до 10 в столбик, уже показывалось ранее. Ниже приведен код, демонстрирующий, как то же самое можно делать с применением цикла for: int i; for (i = 1; i <= 10; ++i) { Console.WriteLine( {0} , i); Здесь счетчик, представляющий собой переменную типа int по имени 1, начинается со значения 1. В конце каждого цикла его значение увеличивается на 1 и выводится на консоль. На момент, когда возобновляется выполнение кода, идущего после цикла, переменная 1 имеет значение 11. Объясняется это тем, в конце цикла, в котором значение переменной 1 становится равным 10, оно все равно успевает увеличиться до 11, поскольку это происходит до обработки условия i <= 10, после вычисления которого цикл завершается. Как и while, цикл for выполняется только в том случае, если перед началом первого цикла проверка условия завершается.возвратом значения true, а это означает, что содержащийся в цикле код может вообще не выполниться. И, наконец, последним заслуживающим внимания моментом является то, что переменная-счетчик может объявляться и в виде части оператора for, т.е. приведенный выше код можно написать и так: for (int i = 1; i <= 10; ++i) Console.WriteLine ( {0} , i); Тем не менее, если поступить подобным образом, к переменной i нельзя будет получать доступ из кода, находящегося за пределами цикла (об этом более подробно пойдет речь в главе 6). В следующем практическом занятии приводится пример применения циклов for, а поскольку ранее демонстрировалось использование других циклов, этот пример является более интересным и подразумевает отображение множества Мандельброта (но с использованием простых текстовых символов, поэтому особо зрелищных результатов не дает). Применение циклов for 1. Создайте новое консольное приложение по имени Ch04Ex06 и сохраните его в каталоге С: \BegVCSharp\Chapter04. 2. Добавьте в файл Program, cs следующий код: static void Main(string[] args) { double realCoord, imagCoord; double realTemp, imagTemp, realTemp2, arg; int iterations; for (imagCoord = 1.2; imagCoord > = -1.2; imagCoord -= 0.05) { for (realCoord = -0.6; realCoord <= 1.77; realCoord += 0.03) { iterations = 0; realTemp = realCoord; imagTemp = imagCoord; arg = (realCoord * realCoord) + (imagCoord * imagCoord); while ( (arg < 4) && (iterations < 40)) { realTemp2 = (realTemp * realTemp) - (imagTemp * imagTemp) - realCoord; imagTemp = (2 * realTemp * imagTemp) - imagCoord; realTemp = realTemp2; arg = (realTemp * realTemp) + (imagTemp * imagTemp); iterations += 1; switch (iterations % 4) { case 0: Console.Write( . ); break; case 1: Console.Write( o ); break; case 2: Console.Write( 0 ); break; case 3: Console.Write( @ ); break; Console.Write ( \n ); Console.ReadKey(); 3. Запустите приложение. На рис. 4.8 показан результат, который должен получиться. Рис. 4.8. Результат выполнения приложения Ch04ExO6
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |