Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Оператор goto. Старшинство операторов с дополнениями




Старшинство операторов с дополнениями

Логические операторы присваивания

Рассмотрим комбинацию выше изложенных операторов с оператором присваивания. Они во многом сходны с математическими операторами присваивания, рассматривавшимися в предыдущей главе (+ =, *= и т.д.). Логические операторы приведены в следующей таблице:

Оператор Тип Пример выражения Результат
&= Бинарный Var1 &= var2; Переменной varl присваивается значение, являющееся результатом выполнения операции varl & var2
׀= Бинарный Var1 ׀= var2; Переменной var1 присваивается значение, являющееся результатом выполнения операции varl ׀ var2
^= Бинарный Var1 ^= var2; Переменной var1 присваивается значение, являющееся результатом выполнения операции var1 ^ var2

Эти операторы используются как с логическими, так и с численными значениями, точно так же, как и операторы &, | и ^.

Обратите внимание, что при выполнении операторов &= и |= применяются операторы & и |, а не && и ||, что приводит к издержкам, характерным для этих более простых операторов.

Для операторов побитового сдвига также существуют соответствующие операторы присваивания:

Оператор Тип Пример выражения Результат
>>= Унарный Var1 >>= var2; Переменной var1 присваивается значение, которое получается в результате сдвига двоичного содержимого переменной var1 вправо на число битов, равное значению переменной var2
<<= Унарный Var1 <<= var2; Переменной var1 присваивается значение, которое получается в результате сдвига двоичного содержимого переменной var1 влево на число битов, равное значению переменной var2

Таблица старшинства операторов:

Старшинство Операторы
Высшее ++, -- (используемые в качестве префиксов); (), +, - (унарные),!, ~ *, /, % +, - >>, << >, <, <=, >= = =,!= & ^ ׀ && ׀ ׀ =, / =,% =, + =, - =, > =, <=, & =, ^=, | =
Низшее ++, -- (используемые в качестве суффиксов)

Пришлось ввести в эту таблицу несколько новых уровней, зато теперь она точно определяет, каким образом следует вычислять выражения, например:

varl = var2 <= 4 && var2 >= 2;

в котором оператор && выполняется после операторов < = и >=. Здесь необходимо отметить тот факт, что совершенно не возбраняется использовать скобки с целью сделать выражения более понятными.

Можно записать вышеприведенное выражение следующим образом:

varl = (var2 <= 4) && (var2 >= 2);

мы сумеем решить эту проблему, явно указав последовательность выполнения операций.

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

Оператор goto имеет вид:

goto <имяМетки>;

Метки задаются таким образом:

<имяМетки>:

В качестве примера разберем следующий код:

int myInteger = 5;

goto myLabel;

myInteger +=10;

myLabel:

Console.WriteLine(“myInteger = {0}”, myInteger);

Его выполнение осуществляется следующим образом:

• Переменная myInteger объявляется как имеющая тип int и ей присваивается значение 5.

• Оператор goto прерывает нормальный ход выполнения кода и передает управление на строку с меткой myLabel:.

• Значение переменной myInteger выводится на консоль.

Строка кода, выделенная в приведенной ниже программе серым цветом, никогда не будет выполняться:

int myInteger = 5;

goto myLabel;

myInteger += 10;

myLabel:

Console.WriteLine(“myInteger = {0}”, myInteger);

В самом деле, если вы попытаетесь использовать этот код в приложении, то обнаружите, что при попытке его откомпилировать появится предупреждение "Unreachable code detected" ("Обнаружен невыполняемый код") с номером соответствующей строки.

 




Поделиться с друзьями:


Дата добавления: 2015-04-29; Просмотров: 362; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.01 сек.