Оператор — это законченное предложение, записанное на каком-либо языке программирования. В нашем случае — на языке C#. Каждый оператор в программе на C# обязательно заканчивается символом ; (точка с запятой).
Операторы условно можно подразделить на две категории: исполняемые — с их помощью реализуется алгоритм решаемой задачи, и описательные, необходимые для определения типов пользователя и объявления объектов программы, например, переменных.
Все исполняемые операторы можно разбить на две группы: простые и структурированные. К простым операторам можно отнести оператор присваивания, пустой оператор, операторы переходов (goto, break, continue, return), оператор-выражение, вызов метода как отдельного оператора.
Структурированные операторы — это сложные (составные) операторы, которые могут объединять в себе другие операторы. К этой категории относятся операторы ветвления if, выбора switch и операторы циклов (for, while, do, foreach).
Теперь более подробно рассмотрим простые операторы.
Оператор присваивания — это самый употребительный оператор. Его назначение — присвоить новое значение какой-либо переменной. В C# имеется три формы этого оператора.
1)Простой оператор присваивания записывается так:
переменная = выражение;
Данный оператор работает следующим образом: вначале вычисляется выражение, записанное справа от символа операции = (равно), затем полученный результат присваивается переменной, стоящей слева от знака =. Тип результата должен совпадать с типом переменной, записанной слева, или быть к нему приводимым.
Слева от знака = может быть только переменная, справа же можно записать и константу, и переменную и вообще выражение любой сложности.
Пример операторов
x=3;
r=x;
y=x+3*r;
s=Math.Sin(x);
2)Множественное присваивание — в таком операторе последовательно справа налево нескольким переменным присваивается одно и то же значение, например:
a=b=c=1;
Так можно сразу определить, к примеру, что в равностороннем треугольнике все стороны равны одному и тому же числу 1. Приведенный выше оператор эквивалентен последовательному выполнению трёх операторов:
a=1;
b=a;
c=b;
Естественно, нам проще записать один оператор, а не три. Программа получается короче, более естественно смотрится текст, и работает такая конструкция немного быстрее.
3)Присваивание с одновременным выполнением какой-либо операции в общем виде записывается так:
переменная знак_операции = выражение;
и равносильно записи
переменная = переменная знак_операции выражение;
Например, оператор:
s += 5; // 1-й вариант
делает то же самое, что и оператор
s = s + 5; // 2-й вариант
а именно: взять старое значение из переменной s, прибавить к нему число 5 и полученное значение снова записать в переменную s.
Как видим, запись 1-го варианта короче записи 2-го варианта, да и выполняется быстрее, так как в 1-м варианте адрес переменной s вычисляется 1 раз, а во 2-м варианте — дважды.
В языке C# в ряде случаев выражение, которое заканчивается символом ; (точка с запятой), считается законченным предложением, т.е. оператором. Примеры:
1)Выполняется префиксная операция автоуменьшения:
--i;
2)Выполняется постфиксная операция автоувеличения:
i++;
3)Вызывается метод для вывода данных на дисплей монитора (выводится текст «Тест»):
Console.WriteLine("Тест");
А вот такой оператор на языке C# недопустим:
a+b;
хотя в языках-предшественниках C и C++ он был возможен.
Пустой оператор — это оператор, который ничего не выполняет. Зачем нужен «бесполезный» оператор?
Пустой оператор используется в тех случаях, когда по синтаксису языка требуется записать какой-либо оператор, а по логике программы мы не собираемся что-либо делать. Так, пустой оператор может потребоваться в операторе ветвления, когда по какой-либо ветви ничего не требуется выполнять, так же для того, чтобы определить метку для перехода в тексте программы, а иногда — для пустого тела цикла.
Пустой оператор — это одиночный символ ; (точка с запятой), например:
c=a+b; ;
Здесь первый символ ; (точка с запятой) завершает оператор присваивания, а второй символ как раз и даёт нам пустой оператор. В данной ситуации пустой оператор совсем не нужен (но и не является синтаксической ошибкой!), приведен только для пояснения. Более «разумные» примеры использования пустого оператора будут приведены позже в соответствующих темах.
Для изменения последовательного выполнения операторов используются операторы перехода. Это операторы goto, continue, break, return. Рассмотрим их подробнее.
1)Оператор goto
Этот оператор позволяет сделать переход в пределах текущего метода. Переход возможен как по ходу выполнения программы, так и в обратном направлении. Пример:
goto Metka;
// Любые операторы
// ...............
Metka:;
Здесь Metka — это идентификатор (метка), обозначающий то место в тексте программы, куда делается переход. Такая метка не требует описания (её и нельзя описывать!), задается по общим правилам и не может совпадать ни с ключевыми словами, ни с именами объектов программы.
В языке C# этот оператор используется редко. Необдуманное применение goto приводит к затруднению понимания текста программы. Как правило, если в тексте программы требуется использование этого оператора, то это означает слабую логику в проектировании алгоритма программы.
2)Оператор break
Данный оператор применяется для выхода из операторов циклов (for, while, do, foreach) или оператора выбора switch. При использовании этого оператора метки не нужны, как как управление передаётся на оператор, следующий за оператором цикла или выбора.
Вот этот оператор в программах на C# применяется очень часто! А оператор switch вообще без break не используют. Примеры применения оператора break рассмотрим в соответствующих темах.
3)Оператор continue
Позволяет передать управление в конец цикла. Применяется гораздо реже, чем оператор break. Как правило, всегда можно построить алгоритм решаемой задачи без использования оператора continue. Пример применения оператора continue рассмотрим в теме «Циклы».
4)Оператор return
Обеспечивает выход из метода. Управление передаётся оператору, следующему за вызовом метода. Примеры применения оператора return рассмотрим в темах, связанных с использованием методов.
|
|
|