Си шарп if else

Оператор if определяет, какой оператор будет выполняться при выполнения условия, заданного логическим выражением. An if statement identifies which statement to run based on the value of a Boolean expression. В приведенном ниже примере переменной bool типа condition присваивается значение true , а затем она проверяется оператором if . In the following example, the bool variable condition is set to true and then checked in the if statement. В результате получается The variable is set to true. . The output is The variable is set to true. .

Примеры в этом разделе можно выполнить, разместив их в методе Main консольного приложения. You can run the examples in this topic by placing them in the Main method of a console app.

Оператор if в С# может иметь две формы, как показано в приведенном ниже примере. An if statement in C# can take two forms, as the following example shows.

В операторе if-else , если condition имеет значение true, выполняется then-statement . In an if-else statement, if condition evaluates to true, the then-statement runs. Если condition имеет значение false, выполняется else-statement . If condition is false, the else-statement runs. Так как condition не может одновременно иметь значения true и false, then-statement и else-statement оператора if-else не могут выполняться оба. Because condition can’t be simultaneously true and false, the then-statement and the else-statement of an if-else statement can never both run. После выполнения then-statement или else-statement управление передается следующему оператору после оператора if . After the then-statement or the else-statement runs, control is transferred to the next statement after the if statement.

В операторе if , не включающем оператор else , если condition имеет значение true, выполняется then-statement . In an if statement that doesn’t include an else statement, if condition is true, the then-statement runs. Если condition имеет значение false, то управление передается следующему оператору после оператора if . If condition is false, control is transferred to the next statement after the if statement.

then-statement и else-statement могут состоять из одного или нескольких операторов, заключенных в фигурные скобки ( <> ). Both the then-statement and the else-statement can consist of a single statement or multiple statements that are enclosed in braces ( <> ). Для одного оператора скобки необязательны, но рекомендуются. For a single statement, the braces are optional but recommended.

Оператор или операторы в then-statement и else-statement могут быть любого типа, включая другой оператор if , вложенный в исходный оператор if . The statement or statements in the then-statement and the else-statement can be of any kind, including another if statement nested inside the original if statement. Во вложенных операторах if каждое предложение else относится к последнему оператору if , у которого нет соответствующего объекта else . In nested if statements, each else clause belongs to the last if that doesn’t have a corresponding else . В приведенном ниже примере Result1 получается, если оба выражения m > 10 и n > 20 имеют значение true. In the following example, Result1 appears if both m > 10 and n > 20 evaluate to true. Если m > 10 имеет значение true, но n > 20 — значение false, то получается Result2 . If m > 10 is true but n > 20 is false, Result2 appears.

Читайте также:  Сколько стоит компания ютуб

Если вместо этого нужно, чтобы Result2 получался, когда значение (m > 10) равно false, можно указать такую связь с помощью фигурных скобок для задания начала и конца вложенного оператора if , как показано в приведенном ниже примере. If, instead, you want Result2 to appear when (m > 10) is false, you can specify that association by using braces to establish the start and end of the nested if statement, as the following example shows.

Result2 получается, если условие (m > 10) имеет значение false. Result2 appears if the condition (m > 10) evaluates to false.

Пример Example

В приведенном ниже примере вы вводите символ с помощью клавиатуры, а программа использует вложенный оператор if для определения того, является ли введенный символ буквой. In the following example, you enter a character from the keyboard, and the program uses a nested if statement to determine whether the input character is an alphabetic character. Если введенный символ является буквой, программа определяет его регистр. If the input character is an alphabetic character, the program checks whether the input character is lowercase or uppercase. Для каждого случая предусмотрено отдельное сообщение. A message appears for each case.

Пример Example

Также можно поместить оператор if в блок else, как показано в части кода, приведенной ниже. You also can nest an if statement inside an else block, as the following partial code shows. В примере операторы if помещаются в два блока else и один блок then. The example nests if statements inside two else blocks and one then block. Комментарии определяют какие условия выполняются в каждом из блоков. The comments specify which conditions are true or false in each block.

Пример Example

В приведенном ниже примере определяется, является ли введенный символ строчной буквой, прописной буквой или цифрой. The following example determines whether an input character is a lowercase letter, an uppercase letter, or a number. Если все три условия имеют значение false, то символ не является алфавитно-цифровым. If all three conditions are false, the character isn’t an alphanumeric character. Для каждого случая выводится сообщение. The example displays a message for each case.

Точно так же как оператор в блоке else или блоке then может быть любым допустимым оператором, в качестве условия можно использовать любое допустимое логическое выражение. Just as a statement in the else block or the then block can be any valid statement, you can use any valid Boolean expression for the condition. Вы можете использовать логические операторы, такие как ! , && , || , & , | и ^ , для формирования составных условий. You can use logical operators such as ! , && , || , & , | , and ^ to make compound conditions. В коде ниже приведены примеры. The following code shows examples.

Спецификация языка C# C# language specification

Дополнительные сведения см. в спецификации языка C#. For more information, see the C# Language Specification. Спецификация языка является предписывающим источником информации о синтаксисе и использовании языка C#. The language specification is the definitive source for C# syntax and usage.

В структурном программировании базовыми являются три структуры: последовательность, ветвление и цикл.

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

В языке C# — два типа условных операторов: двойного выбора (if) и множественного выбора (switch).

Оператор if

Оператор if. Для организации условного ветвления язык C# унаследовал от С и С++ конструкцию if…else (если … иначе).
Ее синтаксис понятен всем, кто программировал на процедурных языках:

Читайте также:  Скрытое видеонаблюдение за женой видео

if (условие) оператор (операторы) else оператор (операторы);

Если по каждому из условий нужно выполнить более одного оператора, эти операторы должны быть объединены в блок с помощью фигурных скобок <…>. Это также касается других конструкций C#, в которых операторы могут быть объединены в блок, таких как циклы for и while, см. далее.
Стоит обратить внимание, что в отличие от языков С и С++, в C# условный оператор if может работать только с булевскими выражениями, но не с произвольными значениями вроде -1 и 0.
В операторе if могут проверяться сложные логические выражения, и он может содержать операторы else, внутри которых могут вставлены другие операторы if (вложенность операторов).
Рассмотрим следующий пример:

Введем слово ЛОГИКА, тогда:

Как видите количество else if, добавляемых к единственному if, не ограничено.
Один момент, который следует отметить касательно if: фигурные скобки применять не обязательно, если в условной ветви присутствует только один оператор, как показано в примере.

Оператор switch

Оператор switch. Вторым оператором выбора в C# является оператор switch, который обеспечивает множественное ветвление программы.
Следовательно, этот оператор позволяет сделать выбор среди нескольких альтернативных вариантов дальнейшего выполнения программы.
Несмотря на то что многонаправленная проверка может быть организована с помощью последовательного ряда вложенных операторов if, во многих случаях более эффективным оказывается применение именно оператора switch.
Этот оператор действует следующим образом. Значение выражения последовательно сравнивается с константами выбора из заданного списка. Как только будет обнаружено совпадение с одним из условий выбора, выполняется последовательность операторов, связанных с этим условием.
Ниже приведена общая форма оператора switch:

Важно отметить, что заданное выражение в операторе switch должно быть целочисленного типа (char, byte, short или int), перечислимого (enum) или же строкового (string). А выражения других типов, например с плавающей точкой, в операторе switch не допускаются. Зачастую выражение, управляющее оператором switch, просто сводится к одной переменной. Кроме того, константы выбора должны иметь тип, совместимый с типом выражения. В одном операторе switch не допускается наличие двух одинаковых по значению констант выбора.

Хотя оператор switch…case знаком программистам на С и С++, в C# он немного безопаснее, чем его эквивалент С++. В частности, он запрещает «сквозные» условия почти во всех случаях. Это значит, что если часть case вызывается в начале блока, то фрагменты кода за последующими частями case не могут быть выполнены, если только не используется явно оператор goto для перехода к ним. Компилятор обеспечивает это ограничение за счет требования, чтобы за каждой частью case следовал оператор break, в противном случае он выдает ошибку.
Рассмотрим на примере использование оператора switch:

Результат:

Перейдем к рассмотрению операторов цикла.

Данный урок очень простой, поэтому можете читать его по диагонали. Однако для новичков все же некоторые моменты разжую в своей манере изложения.

Как не парадоксально, но все программирование держится на нескольких столпах обычной логики, из которой потом вытекают различные алгоритмы. Одним из самых главных таких столпов является условный оператор или, как его еще называют, оператор выбора.

С выбором мы всегда сталкиваемся в повседневной жизни. Мы смотрим в окно и увидев теплую солнечную погоду одеваемся по летнему легко. Если же видим дождь, берем зонтик и т.д. Точно так и в программировании – нам всегда приходится оперировать условиями.

Читайте также:  Программа для корректировки картинок

Допустим, ваш метод возвращает какое-то условие. Например, вы пишете класс Medical, который выписывает пациенту то или иное лекарство в зависимости от многих параметров, например веса. Естественно, что вес у всех разный, а это значит, что доза лекарства будет разной. В этом случае нам и пригодится выбор. Давайте рассмотрим этот пример.

Создайте Консольный проект и назовите его Lesson6.

Пока мы еще не рассматривали с вами аспекты работы с классами, поэтому поместим наш класс Medical в тот же файл, где будет главный класс с точкой входа в программу. Однако знайте на будущее –так делать не стоит. Классы лучше всегда помещать в отдельный файл, благо Visual C# или Sharp Developer позволяет сделать это всего двумя щелчками мышки.

Перед class Program напишем наш класс Medical. В нашем случае этот класс будет делать только одно действие –возвращать норму потребления лекарства. Поэтому код будет очень маленьким. Фактически, это лучше было бы сделать в коде, однако я хочу постепенно приучать вас к объектно-ориентированному мышлению. А оно здесь таково – есть сущность (некое лечение пациента), а значит, что нужно использовать класс для описания этой сущности. И несмотря на то, что сейчас код будет избыточным, в последствии мы выиграем от такого подхода (представьте себе тот факт, что объект очень скоро сможет ставить диагноз, выписывать рецепты, советовать, как вести себя дальше). В общем, классы крайне полезная штука и не нужно их бояться.

Итак, наш класс будет иметь всего один (для этого урока более чем достаточно) метод, возвращающий норму потребления лекарства в зависимости от веса. Чтобы не загружать лишний раз вам мозг, сделаем данный метод статическим (метод класса, если быть точным). Кстати, здесь я также нарушил все, что можно. Во-первых, у меня нет здесь атрибутов класса (переменных), кроме того, я пишу в стиле C++, имея в виду метод getter, хотя должен использовать свойства (property). Но пока вы к этому не готовы.

Мой класс выглядит таким образом:

В данном участке кода нас пока интересует лишь конструкция if… else. Это как раз и обозначает условие. Мы передаем программе вес и проверяем его на условие. Если он больше 60 килограммов, то пишем, что нужно принимать по 2 таблетки, в ином случае достаточно и одной. Полный код выглядит так:

Скомпилируйте и посмотрите на результат. Кстати, обратите внимание на вызов метода getDozaLekarstva (). Во-первых, он вызывается после имени класса (наподобие WriteLine у класса Console), а во-вторых принимает параметр, который и будет весом пациента, от которого будет плясать наш выбор. Пока можете на это не обращать внимание. Единственное, что прошу вас пока поэкспериментировать с передаваемым методу весом.

Итак, выбор в C# осуществляется конструкцией if… else. Выглядит это так:

Такая конструкция применялась в моем примере. Однако обратите внимание, что не всегда действите бывает одно после if или else. Если их несколько, то нужно заключать их в операторные скобки <>.

If на самом деле возвращает всего два значения – истину или ложь. Если ваше условие истина, то выполняется указанное вами действие1, если же нет, то –действие 2.

В качестве условия могут выступать следующие операторы:

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>