- •Преимущества Microsoft.Net
- •Понятия приложения, проекта, решения
- •Создание первого проекта
- •Программирование на c#. Состав языка
- •Типы данных
- •Переменные и константы
- •Int age;
- •Организация ввода-вывода данных. Форматирование.
- •Вывод данных
- •Ввод данных
- •Операции
- •Выражения и преобразование типов
- •Int-long, float, double, decimal
- •Функции работы с символами и строками.
- •Символы char
- •Неизменяемые строки string
- •Изменяемые строки
- •Операторы ветвления
- •Оператор выбора switch.
- •Операторы цикла
- •Цикл с предусловием while
- •Цикл с постусловием do while
- •Операторы безусловного перехода
- •Методы: основные понятия
- •Перегрузка методов
- •Обработка исключений
- •Оператор try
- •Операторы checked и unchecked
- •Массивы
- •Многомерные массивы
- •Ступенчатые массивы
- •Оператор foreach и его использование при работе с массивами
- •Регулярные выражения
- •Метасимволы в регулярных выражениях
- •Поиск в тексте по шаблону
- •Редактирование текста
- •Работа с файловой системой
- •Работа с каталогами Абстрактный класс FileSystemInfo
- •Класс DirectoryInfo
- •Класс Directory
- •Работа с файлами Класс Filelnfo
- •Класс File
- •Properties Window
Цикл с постусловием do while
Оператор цикла dowhileтакже организует выполнение одного оператора (простого или составного) неизвестное заранее число раз. Однако в отличие от циклаwhileусловие завершения цикла проверяется после выполнения тела цикла. Это значит, что цикл do-while всегда выполняется хотя бы один раз.
Формат цикла do while:
do S while (B);
где В– выражение, истинность которого проверяется (условие завершения цикла);S– тело цикла - оператор (простой или блок).
Сначала выполняется оператор S, а затем анализируется значение выраженияВ: если оно истинно, то управление передается операторуS, если ложно - цикл завершается, и управление передается на оператор, следующий за условиемB. Так как условиеВпроверяется после выполнения тела цикла, то в любом случае тело цикла выполнится хотя бы один раз.
Другая запись
Do
{
<код который выполняется в цикле>
}
While <условие>;
В результате вычисления <условия> получается логическое значение.
Обычно его используют, когда проверку нужно выполнить после того, как прошла хотя бы одна итерация.
Цикл с параметром for
Он относится к тому типу циклов, которые выполняются заранее заданное количество раз и сами отвечают за организацию счетчика цикла. Для организации цикла for требуется следующая информация:
Начальное значение для инициализации переменной цикла
Условие для продолжения выполнения цикла, зависящее от переменной цикла
Операция, которая будет выполняться над переменной цикла по завершении очередного прохода цикла
Например, если необходимо организовать цикл с переменной цикла, изменяющейся от 1 до 10 с шагом, равным единице, то в этом случае начальное значение равно 1, условием для продолжения цикла будет "переменная цикла меньше или равна 10, а операцией, выполняющейся по окончание каждого прохода цикла, будет прибавление значению переменной цикла единицы. Эта информация должна быть размещена в структуре цикла for следующим образом:
for (<итщиализация>; <условие>; <операция>)
{
<код, выполняющийся в цикле>
}
Любая из частей оператора for (инициализация, выражение, модификация, оператор) может отсутствовать, но точку с запятой, определяющую позицию пропускаемой части, надо оставить.
static void Main()
{
Console.Write("N= ");
int n=int.Parse(Console.ReadLine());
for (int i=1; i<=n;) //блок модификации пустой
Console.Write(" " + i++);
}
Операторы безусловного перехода
В С# есть несколько операторов, изменяющих естественный порядок выполнения команд: оператор безусловного перехода goto, оператор выходаbreak, оператор перехода к следующей итерации циклаcontinue, оператор возврата из методаreturn и оператор генерации исключенияthrow.
Иногда возникают ситуации, когда требуется более тонкий контроль за выполнением кода в цикле. В С# для этих целей предусмотрено четыре команды.
• break — приводит к немедленному завершению цикла.
• continue — приводит к немедленному завершению текущего прохода цикла (вычисления продолжаются со следующего прохода).
• goto — позволяет выйти из цикла в помеченную точку кода (этот метод не рекомендуется использовать, если вы хотите получить легко читаемый и понимаемый код).
• return — выводит из цикла и из функции, в которой он находится
Команда break позволяет просто выйти из цикла, при этом управление передается на первую строку кода после цикла. Например:
int i = 1;
while (i <= 10)
{
if (i == 6 )
break;
Console.WriteLine("{0}",i++) ;
Этот код выведет числа от 1 до 5, поскольку когда значение переменной i достигнет 6, команда break приведет к выходу из цикла.
Команда continue прекращает выполнение текущего прохода цикла, а не всего цикла. Например:
int i ;
for (i = 1; i <= 10; i++)
{
if ( ( i % 2) == 0)
continue;
Console.WriteLine(i) ;
}
Третий способ предполагает использование оператора goto, с которым вы познакомились ранее. Например:
int i =1 ;
while (i <= 10)
{
if (i == 6)
goto exitPoint;
Console.WriteLine("{О}", i++)
Console.WriteLine("Этот код никогда не будет выполняться! ");
exitPoint;
Console.WriteLine("Этот код будет выполнен после того, как произойдет выход из цикла посредством goto. ");
Обратите внимание на то, что выход из цикла посредством команды goto допустим (разве что несколько неряшлив), а вот использование goto для входа в цикл извне запрещено.
Оператор безусловного перехода goto
Оператор безусловного перехода gotoимеет формат:
goto<метка>;
В теле той же функции должна присутствовать ровно одна конструкция вида:
<метка>: <оператор>;
Оператор gotoпередает управление на помеченный меткой оператор. Рассмотрим пример использования оператораgoto:
staticvoidMain()
{
floatx;
metka:Console.WriteLine("x="); //оператор,помеченныйметкой
x = float.Parse(Console.ReadLine());
if (x!=0) Console.WriteLine("y({0})={1}", x, 1 / x );
else
{
Console.WriteLine("функция не определена");
goto metka;// передача управление метке
}
}
Следует учитывать, что использование оператора gotoзатрудняет чтение больших по объему программ, поэтому использовать метки нужно только в крайних случаях, например, в оператореswitch.
Оператор выхода break
Оператор breakиспользуется внутри операторов ветвления и цикла для обеспечения перехода в точку программы, находящуюся непосредственно за оператором, внутри которого находитсяbreak.
Мы уже применяли оператор breakдля выхода из оператораswitch, аналогичным образом он может применяться для выхода из других операторов.
Оператор перехода к следующей итерации цикла continue
Оператор перехода к следующей итерации цикла continueпропускает все операторы, оставшиеся до конца тела цикла, и передает управление на начало следующей итерации (повторение тела цикла). Рассмотрим операторcontinueна примере.
staticvoidMain()
{
Console.WriteLine("n=");
int n = int.Parse(Console.ReadLine());
for (int i = 1; i <= n; i++)
{
if (i % 2 == 0) continue;
Console.Write(" " + i);
}
}
