Российский Государственный Технологический Университет им. К.Э. Циолковского
Опубликован: 02.03.2007 | Доступ: свободный | Студентов: 5678 / 802 | Оценка: 3.96 / 3.45 | Длительность: 27:04:00
ISBN: 978-5-9556-0086-4
Лекция 3:

Управляющие операторы и методы

< Лекция 2 || Лекция 3: 123456 || Лекция 4 >
Аннотация: В языке программирования C# существуют специальные операторы, которые в зависимости от вычисляемых значений выражений позволяют управлять ходом выполнения программы, эта лекция рассказывает именно о них

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

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

Управляющие операторы

Управляющие операторы применяются в рамках методов. Они определяют последовательность выполнения операторов в программе и являются основным средством реализации алгоритмов.

Различаются следующие категории управляющих операторов:

  • Операторы выбора. Вводятся ключевыми словами if, if ... else ..., switch.
  • Итеративные операторы. Вводятся ключевыми словами while, do ... while, for, foreach.
  • Операторы перехода (в рамках методов). Вводятся ключевыми словами goto, break, continue.

if, if ... else ...

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

Далее в операторе if ... else ... после ключевого слова else размещается еще один оператор.

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

В соответствии с синтаксисом условного оператора в части else (если таковая имеется) располагается блок операторов. Частный случай оператора – оператор if.

Какой бы сложности ни были составляющие части if ... else ... – это всего лишь ДВЕ равноправных части одного оператора. "Каскад" в if ... else ... – это всего лишь оператор (блок), содержащий вхождение if или if ... else ... операторов.

if (...)
 {

 }
else
 {
if (...)
 {

 }
else
 {

 }
 }

переписывается

if (...)
{

}
else
if (...)
{

}
else
{

}

Вложенный (Nesting) if. Оператор if часто сам в свою очередь является условным оператором произвольной сложности.

И в этом случае оператор if ... else ... включает ДВЕ части.

if (...)
 {
if (...)
 {

 }
else
 {
 }

 }
else
 {
 
 }

переписывается как

if (...) if (...)
 {

 }
else
 {

 } 
else
 {

 }

Главное – не перепутать соответствующие части оператора if ... else ... .

Еще одно важное замечание связано с использованием "простых" (не блоков) операторов. Невозможно построить оператор if ... else ... на основе одиночного оператора объявления:

if (true) int XXX = 125;
if (true) int XXX = 125; else int ZZZ = 10;

Такие конструкции воспринимаются как ошибочные. Одиночный оператор в C# — это не блок, и ставить в зависимость от условия (пусть даже всегда истинного) такое ответственное дело, как создание объекта, здесь не принято.

Совсем другое дело – при работе с блоками операторов!

if (true) {int XXX = 125;}
if (true) {int XXX = 125;} else {int ZZZ = 10;}

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

< Лекция 2 || Лекция 3: 123456 || Лекция 4 >
kewezok kewezok
kewezok kewezok
Елена Шляхт
Елена Шляхт
Объясните плиз в чем отличие а++ от ++а
Почему результат разный?
int a=0, b=0;
Console.WriteLine(a++); //0
Console.WriteLine(++b); //1
a++;
++b;
Console.WriteLine(a); //2
Console.WriteLine(b); //2