Программирование >>  Программирование с использованием ajax 

1 ... 26 27 28 [ 29 ] 30 31 32 ... 396



Рис. 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



1 ... 26 27 28 [ 29 ] 30 31 32 ... 396

© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки.
Яндекс.Метрика