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

1 ... 28 29 30 [ 31 ] 32 33 34 ... 396


Console.WriteLine( This code will never be reached. ); Этот код недостижим

exitPoint:

Console.WriteLine ( This code is run when the loop is exited using goto.

Этот код выполняется при выходе из цикла посредством goto

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

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

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

while (true) {

код в цикле

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

int i = 1; while (i <= 10) {

if ( (i % 2) == 0)

continue; Console.WriteLine( {0} , i + + ) ;

Здесь значение переменной i не увеличивается до самой последней строки кода в цикле, а выполнение этой операции предусмотрено только после оператора continue. При достижении continue (которое будет иметь место, когда переменная i равна 2) на следующей итерации цикла будет использоваться то же самое значение переменной i, что приведет к продолжению цикла, проверке i, снова продолжению цикла и т.д. В конечном итоге это приведет к зависанию приложения. Работу зависшего приложения можно прервать, и перезагружать систему при этом не потребуется.

Резюме

Благодаря этой главе, вы пополнили свои знания в области программирования, рассмотрев различные структуры, которые можно использовать в коде. Правильное применение этих структур играет существенную роль при создании более сложных приложений, поэтому они еще не раз будут встречаться в книге.

Сначала в главе рассказывалось о том, что собой представляют булевская и поразрядная логика. Данная тема действительно очень важна при реализации в программах циклов и ветвления кода. Тщательное ознакомление с описанными в этом разделе операциями и приемами крайне необходимо.

Методика ветвления позволяет обеспечивать выполнение кода на основе соблюдения тех или иных условий, а вместе с организацией циклов - еще и создавать в коде С# разнообразные сложные структуры. По мере добавления циклов внутри других циклов, в свою очередь, находящихся внутри структур if еще каких-то циклов, стано-



вится понятно, почему использование отступов в коде является настолько полезным. Смещение всего кода влево мгновенно делает его трудным для восприятия глазом и более трудным для отладки. Очень важно уже на этом этапе хорошо разобраться в правилах использования отступов, позже это обязательно окупится. Среда VS добавляет многие отступы автоматически, но все равно не помешает научиться ставить их там, где надо, самостоятельно, по мере ввода своего кода.

Следующая глава посвящена более детальному изучению переменных и способов их применения.

Упражнения

При наличии двух целых чисел, хранящихся в переменных varl и var2, какую булевскую проверку можно выполнить для выяснения того, является ли то или другое (но не оба вместе) больше 10?

Напишите приложение, включающее логику из первого упражнения, которое получает два числа от пользователя и отображает их на экране, но отклоняет варианты, когда оба числа больше 10, и предлагает в таком случае ввести два других числа.

Что неверно в следующем коде?

int i;

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

if ( (i % 2) = 0)

continue; Console.WriteLine(i);

Измените приложение, отображающее множество Мандельброта, так, чтобы оно запрашивало информацию о границах изображения у пользователя и отображало только выбранный раздел рисунка. Текущий код предусматривает отображение стольких символов, сколько сможет уместиться на одной строке консольного приложения; подумайте, как сделать так, чтобы каждый выбираемый рисунок умещался в одном и том же объеме пространства, максимально увеличив доступную для просмотра область.




Д о п о л н ител ьн ы е сведения о переменных

Теперь, когда вы уже немного познакомились с языком С#, можно вернуться рассмотреть некоторые более сложные вопросы, касающиеся переменных.

Сначала в настоящей главе будет рассказано о преобразовании типов, т.е. о том, как преобразовывать значения из одного типа в другой. Данный вопрос уже затрагивался ранее, но здесь он рассматривается более полно. Это позволит лучше понять, что будет происходить в случае (намеренного и непреднамеренного) смешивания типов в выражениях, а также более точно управлять способом обработки данных, что поможет упростить код и избежать неприятных сюрпризов.

Далее будут показаны еще несколько доступных для использования типов переменных.

□ Перечисления. Типы переменных, имеющие определяемый пользователем дискретный набор возможных значений, которые, в свою очередь, могут использоваться пригодным для восприятия человеком образом.

□ Структуры. Сложные типы переменных, состоящие из определяемого пользователем набора переменных другого типа.

□ Массивы. Типы, которые хранят множество переменных одного типа и позволяют получать доступ к отдельным значениям по индексу.

Эти типы переменных немного сложнее простых типов, которые демонстрировались ранее, но могут значительно упростить жизнь разработчика. И, наконец, в завершение главы будет рассмотрена еще одна полезная тема, касающаяся строк - базовые приемы манипулирования строками.



1 ... 28 29 30 [ 31 ] 32 33 34 ... 396

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