|
|||||||
АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Основные арифметические операторы и организация ветвлений в программахЛабораторная работа 1 Разработка простых структурированных программ.
Цель работы: получить практический навык в разработке простых программ с использованием арифметических операторов и операторов ветвления.
Основные арифметические операторы и организация ветвлений в программах
В С# определены следующие арифметические операторы.
Оператор Действие + Сложение - Вычитание, унарный минус * Умножение / Деление % Деление по модулю -- Декремент ++ Инкремент
Действие С#-операторов +, -, * и / совпадает с действием аналогичных операторов в любом другом языке программирования. Их можно применять к данным любого встроенного числового типа. После применения оператора деления (/) к целому числу остаток будет отброшен. Например, результат целочисленного деления 10/3 будет равен 3. Остаток от деления можно получить с помощью оператора деления по модулю (%). Этот оператор работает практически так же, как в других языках программирования: возвращает остаток от деления нацело. Например, 10 % 3 равно 1. В С# оператор % можно применить как к целочисленным типам, так и типам с плавающей точкой. Например, 10,0 % 3,0 также равно 1.
Операторы отношений оценивают по "двубальной системе" (ИСТИНА/ЛОЖЬ) отношения между двумя значениями, а логические определяют различные способы сочетания истинных и ложных значений. Поскольку операторы отношений генерируют ИСТИНА/ЛОЖЬ - результаты, то они часто выполняются с логическими операторами.
Оператор Значение == Равно ! = Не равно > Больше < Меньше >= Больше или равно <= Меньше или равно
Составные операторы присваивания. В С# предусмотрены специальные составные операторы присваивания, которые упрощают программирование определенных инструкций присваивания. Составные версии операторов присваивания существуют для всех бинарных операторов (т.е. для всех операторов, которые работают с двумя операндами). Общая форма их записи такова:
переменная ор = выражение;
Здесь элемент ор означает конкретный арифметический или логический оператор, объединяемый с оператором присваивания. Возможны следующие варианты объединения операторов.
+= -= *= /= %= &=!= ^=
| х = х + 10;
Используя составной оператор присваивания, ее можно переписать в таком виде:
х += 10;
Пара операторов += служит указанием компилятору присвоить переменной х сумму текущего значения переменной х и числа 10. А вот еще один пример. Инструкция
| х = х - 100;
аналогична такой:
| х -= 100;
Обе эти инструкции присваивают переменной х ее прежнее значение, уменьшенное на 100.
Приоритет С#-операторов:
Наивысший () [ ] ++(постфиксный) --(постфиксный) checked unchecked new sizeof typeof ! ~ Операторы приведения +(унарный) -(унарный) ++(префиксный) --(префиксный) * / % + - << >> < > < = >= ==!= & ^ && Низший
Инструкция if. Полный формат ее записи такой:
if(условие) { инструкция; } else { инструкция; } Здесь под элементом инструкция понимается одна инструкция языка С#. Часть else необязательна. Вместо элемента инструкция может быть использован блок инструкций. Вложенные if-инструкции образуются в том случае, если в качестве элемента инструкция (см. полный формат записи) используется другая if-инструкция. Вложенные if-инструкции очень популярны в программировании. Главное здесь - помнить, что else-инструкция всегда относится к ближайшей if-инструкции, которая находится внутри того же программного блока, но еще не связана ни с какой другой else-инструкцией.
if (i == 10) { if (j < 20) a = b; if(k > 100) с = d; else a = с; // Эта else-инструкция относится к if(k > 100). } else a = d; // Эта else-инструкция относится к if(i == 10).
Очень распространенной в программировании конструкцией, в основе которой лежит вложенная if-инструкция, является "лестница" if-else-if. Ее можно представить в следующем виде:
if {условие) инструкция; else if(условие) инструкция; else if(условие) инструкция; else инструкция;
Здесь под элементом условие понимается условное выражение. Условные выражения вычисляются сверху вниз. Как только в какой-нибудь ветви обнаружится истинный результат, будет выполнена инструкция, связанная с этой ветвью, а вся остальная "лестница" опускается. Если окажется, что ни одно из условий не является истинным, будет выполнена последняя else-инструкция (можно считать, что она выполняет роль условия, которое действует по умолчанию). Если последняя else-инструкция не задана, а все остальные оказались ложными, то вообще никакое действие не будет выполнено.
Второй инструкцией выбора является switch. Инструкция switch обеспечивает многонаправленное ветвление. Она позволяет делать выбор одной из множества альтернатив. Хотя многонаправленное тестирование можно реализовать с помощью последовательности вложенных if-инструкций, для многих ситуаций инструкция switch оказывается более эффективным решением. Она работает следующим образом. Значение выражения последовательно сравнивается с константами из заданного списка. При обнаружении совпадения для одного из условий сравнения выполняется последовательность инструкций, связанная с этим условием. Общий формат записи инструкции switch такой:
switch(выражение) { case константа1: последовательность инструкций break;
case константа2: последовательность инструкций break;
case константаЗ: последовательность инструкций break;
default: последовательность инструкций break; }
последовательность инструкций break; case константаЗ: последовательность инструкций break; default: последовательность инструкций break; } Элемент выражение инструкции switch должен иметь целочисленный тип (например, char, byte, short или i n t) или тип s t r i n g (о котором речь пойдет ниже в этой книге). Выражения, имеющие тип с плавающей точкой, не разрешены. Очень часто в качестве управляющего switch-выражения используется просто переменная; case-константы должны быть литералами, тип которых совместим с типом заданного выражения. При этом никакие две case-константы в одной switch-инструкции не могут иметь идентичных значений. Последовательность инструкций default-ветви выполняется в том случае, если ни одна из заданных case-констант не совпадет с результатом вычисления switch-выражения. Ветвь default необязательна. Если она отсутствует, то при несовпадении результата выражения ни с одной из case-констант никакое действие выполнено не будет. Если такое совпадение все-таки обнаружится, будут выполнены инструкции, соответствующие данной case-ветви до тех пор, пока не встретится инструкция break. Инструкция switch может быть использована как часть case-последовательности внешней инструкции switch. В этом случае она называется вложенной инструкцией switch. Необходимо отметить, что case-константы внутренних и внешних инструкций switch могут иметь одинаковые значения, при этом никаких конфликтов не возникнет.
Цикл for. Общий формат записи цикла for для повторного выполнения одной инструкции имеет следующий вид:
for(инициализация; условие; итерация) { последовательность инструкций }
Важно понимать, что условное выражение всегда тестируется в начале выполнения цикла for. Это значит, что если первая же проверка условия даст значение ЛОЖЬ, код тела цикла не выполнится ни разу. Для управления циклом for можно использовать две или больше переменных. В этом случае инструкции инициализации и итерации для каждой из этих переменных отделяются запятыми:
for(i=0, j=10; i < j; i++, j—) Console.WriteLine("i и j: " + i + " " + j);
Поиск по сайту: |
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.01 сек.) |