- •1.Структура программы
- •1.1. Типы данных
- •1.1.1. Целые типы
- •1.1.2. Дробные (вещественные) типы
- •1.1.3. Логический тип
- •1.1.4. Строковый тип
- •1.1.5. Арифметические операторы
- •1.1.6. Нечисловые простые типы
- •1.1.7. Текстовые типы
- •2. Операторы ввода/вывода
- •2.1. Операторы ввода
- •2.2. Операторы вывода
- •2.3. Форматированный вывод
- •3. Логические выражения
- •3.1. Операции сравнения
- •3.2.1.Поразрядные операции » и «
- •3.2.2.Булевские операции присваивания
- •4.Ветвления
- •4.1. Тернарная операция
- •4.2.1. Оператор if
- •4.2.1. Внутристроковый условный оператор
- •4.3.1. Оператор switch
- •5. Организация циклов
- •5.1.Циклы do
- •5.2. Циклы while
- •5.3. Циклы for
- •5.4. Прерывание циклов
- •5.5. Бесконечные циклы
- •6. Преобразование типов
- •6.1. Неявное преобразование
- •6.2. Явное преобразование
- •6.3. Явные преобразования с помощью команд Convert
- •7. Массивы
- •7.1. Объявление массива
- •7.2 Циклы foreach
- •7.3. Многомерные массивы
- •7.4. Массивы массивов
- •8.Строки
- •8.Структуры (доделать)
- •9.Функции и процедуры
- •10.Метод Main()
- •11.Работа с файлы
- •12.Обработка ошибок и исключений(try.. .Catch.. .Finally)
5.1.Циклы do
Цикл doработает следующем образом. Сначала выполняется код,
предназначенный для прогона в цикле, затем производится булевская проверка, и если в ее результате возвращается true, данный код выполняется снова, и так повторяется до
тех пор, пока после проверки не будет возвращено значение false, после чего цикл завершается.
Структура цикла do выглядит, как показано ниже, и подразумевает, что выражение
<проверка> должно возвращать одно из булевских значений:
do
{
<код, подлежащий выполнению в цикле>
} while (<проверка>);
Примечание:
Символ точки с запятой после оператора while является обязательным!!
Например, для вывода чисел от 0 до 8 в столбик можно было бы использовать
такой цикл do:
int i = 0;
do
{
Console.WriteLine("{0}", i++);
} while (i <= 8);
Здесь используется постфиксная версия операции ++ для увеличения значения i
на 0 после его вывода на экран, что требует выполнения проверки условия i <= 8
для включения числа 8 в состав выводимых на консоль чисел.
5.2. Циклы while
Циклы while очень похожи на циклы do, но имеют одно важное отличие:
булевская проверка в них выполняется в начале, а не в конце цикла. Если после выполнения этой проверки возвращается false, код в цикле вообще не выполняется. Вместо этого поток выполнения переходит сразу на код, следующий непосредственно за циклом.
Ниже показано, как специфицируется цикл while:
while (<проверка>)
{
<код, подлежащий выполнению в цикле>
}
Они могут применяться практически так же, как циклы do:
int i = 0;
while (i <= 8)
{
Console.WriteLine("{0}", i++);
}
Этот код будет делать то же самое, что и показанный ранее код с циклом do, т.е. выводить в столбик числа от 0 до 8.
5.3. Циклы for
При написании программ часто используется оператор цикла for, который имеет следующий синтаксис:
for (инициализация; условие; итерация) оператор;
В данном случае оператор является телом цикла. При необходимости выполнения нескольких операторов в теле цикла, вместо оператора записывается блок операторов, заключѐнных в фигурные скобки.
Ниже приведен код, демонстрирующий, как то же самое можно делать с
применением цикла for:
for (int i = 0; i <= 8; ++i)
{
Console.WriteLine("{0}", i);
}
Здесь счетчик, представляющий собой переменную типа intпо имениi,
начинается со значения 0. В конце каждого цикла его значение увеличивается на 1 и
выводится на консоль.
5.4. Прерывание циклов
В некоторых случаях бывает необходимо иметь возможность более точного
управления ходом обработки содержащегося в циклах кода. В языке С# для этого
предусмотрено четыре команды :
break— приводит к немедленному завершению цикла;
continue — приводит к немедленному завершению текущей итерации цикла
(выполнение продолжается со следующей итерации);
goto— позволяет переходить из цикла к выполнению кода с указанной меткой
(не рекомендуется использовать, если требуется, чтобы код был легким для
восприятия и понимания);
return— приводит к выходу из цикла и содержащей его функции.
.
Команда breakпросто завершает цикл, после чего выполняется строка кода,
находящаяся сразу после этого цикла, например:
int i = 0;
while (i <= 10)
{
if (i == 3)
break;
Console.WriteLine("{0}", i++);
}
Этот код будет выводить на консоль числа от 0 до 2, поскольку по достижении
переменной i значения 6 команда break вынуждает цикл завершиться.
Команда continue подразумевает прерывание только текущей итерации, а не
всего цикла, как показано ниже:
for (int i = 1; i <= 10; i++)
{
if ((i % 2) == 0)
continue;
Console.WriteLine(i);
}
В этом примере, всякий раз, когда остатком деления значения переменной iна 2
будет ноль, оператор continueбудет останавливать выполнение текущей итерации, в
результате чего на экране будет отображаться только числа 1, 3, 5, 7 и 9.
Третьим способом прерывания цикла является использование оператора goto:
int i = 1;
while (i <= 10)
{
if (i == 6)
goto exitPoint;
Console.WriteLine("{0}", i++);
}
Console.WriteLine("Этот код вы некогда не увидите.");
// Этот код недостижим
exitPoint:
Console.WriteLine("Этот код выполнятся при выходе из цикла .");
// Этот код выполняется при выходе из цикла посредством goto
Обратите внимание, что использование оператора goto для завершения цикла
является допустимым (хотя и немного неаккуратным), а вот его применение для
перехода внутрь цикла извне — нет.