Компьютерные книги
Главное меню
Главная Поиск по сайту Добавить материал О нас Карта книг Карта сайта
Реклама
computersbooks.net -> Добавить материал -> Языки программирования -> Ватсон К. -> "С#" -> 40

С# - Ватсон К.

Ватсон К. С# — Лори, 2005 . — 879 c.
ISBN 1-861004-98-2
Скачать (прямая ссылка): vatsonc2005.pdf
Предыдущая << 1 .. 34 35 36 37 38 39 < 40 > 41 42 43 44 45 46 .. 404 >> Следующая


Сначала производится инициализация нескольких переменных:

iterations = 0; realTemp = realCoord; imagTemp ¦ imagCoord;

arg = (realCoord * realCoord) + (imagCoord * imagCoord);

Затем для осуществления итерационного процесса используется цикл while, а не цикл do, так как если начальное значение n больше 2, искомым ответом является iterations = о н никаких дополнительных вычислении не требуется.
Управление порядком выполнения___________________________________________________________________73

Обратите внимание, что в программе не производится полное вычисление аргумента: вычисляется значение х*х > у*у, а затем проверяется, меньше ли оно 4. Такой подход позволяет упростить вычисления, поскольку заранее известно, что 2 — это корень квадратный нз 4, и, следовательно, нет необходимости вычислять квадратные корни в самой программе:

while ((arg < 4) u (iterations < 40))

{

realTemp2 = (realTemp • realTemp) - (imagTemp * imagTemp) - realCoord) imagTemp _ (2 * realTemp * imagTemp) - imagCoord; realTemp = realTeinp2;

arg = (realTemp * realTemp) + (imagTemp * imagTemp) ; iterations += 1;

>

Максимальное число повторений данного цикла равно 40.

Получив значение для данной точки в переменной iterations, используем оператор switch для выбора символа, который будет выводиться в этой точке. Вместо сорока возможных значений здесь участвуют всего четыре разных символа, которые определяются с помощью оператора взятия по модулю (%) таким образом, что значения 0, 4, 8... выводятся одним символом, значения 1, 5, 9... другим символом и т. д.:

switch (iterations t 4)

(

case 0;

Console.Write('.*); break; case 1:

Console.Write('o')i break; case 2:

Console.Write(*0*); break) case 3:

Console.Write('в')i breakj

}

Обратите внимание, что вместо оператора Console.WriteLineо используется Console.write(), поскольку после вывода очередного символа не требуется переходить на новую строку.

Необходимость перейти на новую строку возникает после выполнения самого вложенного цикла, н здесь просто выводится символ конца строки, для чего применяется уже знакомая евсаре-последовательность:

)

Console.Write('Nn');

)

В итоге каждая строка программы отделена от предыдущей и выровнена надлежащим образом.

Конечный результат данного приложения оказывается не очень красивым, но весьма впечатляющим; во всяком случае, он демонстрирует, насколько полезным может быть использование циклов и ветвления в программах.
74 Глава 4

Прекращение выполнения цикла

Иногда возникают ситуации, когда требуется более тонкий контроль за выпол неиием кода в цикле. В C# для этих целей предусмотрено четыре команды, с тре мя из которых вы уже познакомились:

? break — приводит к немедленному завершению цикла.

? continue — приводит к немедленному завершению текущего прохода цикла (вычисления продолжаются со следующего прохода).

? goto — позволяет выйтн нз цикла в помеченную точку кода

(этот метод не рекомендуется использовать, если вы хотите получить легко читаемый и понимаемый код).

? return — выводит из цикла и нз функции, в которой он находится

- (см. главу 6).

Команда break позволяет просто выйти нз цикла, при этом управление переда ется на первую строку кода после цикла. Например:

int i = lj
while (i <= 10)
f
if (i «» 6k
. break;
Console.WriteLine(40)* , i++) j
)

Этот код выведет числа от 1 до 5, поскольку когда значение переменной i достигнет 6, команда break приведет к выходу из цикла.

Команда continue прекращает выполнение текущего прохода цикла, а не всего цикла. Например:

int i j ¦

for (i = 1; i <= 10( i++)

(

if Ш % 3> ¦=» 0)

continuer '

Coneole.WriteLine{i);

)

Третий способ предполагает использование оператора goto, с которым вы познакомились ранее. Например:

int i = 1;

while (i <= 10) .

{

if (i ™ 6)

goto exitPoint;

Console.WriteLine(*{0)*r i+ + ) j

)

Console.WriteLine('Этот ход никогда не будет- выполняться));

exitPoint:

Console.WriteLine(*3TOT ход будет выполнен после того,

как произойдет выход из цикла посредством goto. ') i

Обратите внимание на то, что выход из цикла посредством команды goto допустим (разве что несколько неряшлив), а вот использование goto для входа в цикл извне запрещено.
Управление порядком выполнения______________________________________________________________75

Бесконечные циклы

Возможно — в результате ошибки или преднамеренно — создать циклы, которые никогда не завершатся: так называемые бесконечные циклы. В качестве самого простого примера можно привести следующий цикл:

while (true)

{

// код, выполнявшийся в цикле

Иногда такой цикл бывает полезен, тем более что из него всегда можио выйти, например, с помощью оператора break.

Однако в тех случаях, когда создание бесконечного цикла происходит по недосмотру, последствия могут оказаться очень неприятными. Рассмотрим следующий цикл, который очень напоминает цикл for из предыдущего раздела:

int 1 "lj while (i <" 10)
Предыдущая << 1 .. 34 35 36 37 38 39 < 40 > 41 42 43 44 45 46 .. 404 >> Следующая
Книги
Web-программирован-
ие
Аппаратное обеспечение Графика Руководство по П.О. Самоучитель Теория программирования Фотошоп Языки программирования
Новые книги
Вирт Н. "Систематическое программирование " (Теория программирования)

Эком "Microsoft Excel 2000 шаг за шагом Русская версия самоучитель " (Самоучитель)

Поляков А.Ю. "Методы и алгоритмы компьютерной графики в примерах Vizual C++" (Графика)

Баяковский Ю.М. "Графическая библиотека Open GL " (Графика)

Валиков А. "Технология " (Языки программирования)
Авторские права © 2013 ComputersBooks. Все права защищены.