Условные операторы c#
Содержание:
- Неявное указание блоков
- Условный оператор „?“
- АргументыArguments
- Оператор if else
- 2.2.5. else и elif¶
- использование фигурных скобок
- Подробная инструкция по использованию условных операторов «if», «else» и «elseif» в PHP
- ИЛИ «||» находит первое истинное значение
- Оператор else if
- If constexpr, операторы if constexpr statements
- JavaScript
- Условный оператор if
- Конструкция elseif/else if
- Логические операторы
- Условный оператор if
- Инструкция (условный оператор) switch…case
- Тернарные операции
Неявное указание блоков
Если программист не указал скобки для блока стейтментов if или else, то компилятор неявно сделает это за него. Таким образом, следующее:
Будет выполняться как:
По сути, это не имеет значения. Однако начинающие программисты иногда пытаются сделать что-то вроде следующего:
#include <iostream>
int main()
{
if (1)
int a = 4;
else
int a = 5;
std::cout << a;
return 0;
}
|
1 |
#include <iostream> intmain() { if(1) inta=4; else inta=5; std::cout<<a; return; } |
Программа не скомпилируется, и в итоге мы получим ошибку, что идентификатор не определен. А произойдет это из-за того, что программа будет выполняться следующим образом:
#include <iostream>
int main()
{
if (1)
{
int a = 4;
} // переменная a уничтожается здесь
else
{
int a = 5;
} // переменная a уничтожается здесь
std::cout << a; // переменная a здесь не определена
return 0;
}
|
1 |
#include <iostream> intmain() { if(1) { inta=4; }// переменная a уничтожается здесь else { inta=5; }// переменная a уничтожается здесь std::cout<<a;// переменная a здесь не определена return; } |
В этом контексте становится понятным, что переменная имеет локальную область видимости и уничтожается в конце блока, в котором выполняется её инициализация. И, когда мы дойдем до строчки с std::cout, переменная уже перестанет существовать.
Условный оператор „?“
Иногда нам нужно определить переменную в зависимости от условия.
Например:
Так называемый «условный» оператор «вопросительный знак» позволяет нам сделать это более коротким и простым способом.
Оператор представлен знаком вопроса . Его также называют «тернарный», так как этот оператор, единственный в своём роде, имеет три аргумента.
Синтаксис:
Сначала вычисляется : если оно истинно, тогда возвращается , в противном случае – .
Например:
Технически, мы можем опустить круглые скобки вокруг . Оператор вопросительного знака имеет низкий приоритет, поэтому он выполняется после сравнения .
Этот пример будет делать то же самое, что и предыдущий:
Но скобки делают код более читабельным, поэтому мы рекомендуем их использовать.
В примере выше вы можете избежать использования оператора вопросительного знака , т.к. сравнение само по себе уже возвращает :
АргументыArguments
Boolean_expressionBoolean_expressionВыражение, возвращающее значение TRUE или FALSE.Is an expression that returns TRUE or FALSE. Если логическое выражение Boolean_expression содержит инструкцию SELECT, инструкция SELECT должна быть заключена в скобки.If the Boolean_expression contains a SELECT statement, the SELECT statement must be enclosed in parentheses.
{ sql_statement | statement_block }{ sql_statement | statement_block }Любая допустимая инструкция или группа инструкций языка Transact-SQLTransact-SQL, определенных блоком инструкций.Is any valid Transact-SQLTransact-SQL statement or statement grouping as defined with a statement block. Чтобы определить блок инструкций (пакет), используются ключевые слова BEGIN и END языка управления выполнением.To define a statement block (batch), use the control-of-flow language keywords BEGIN and END. Хотя все инструкции Transact-SQLTransact-SQL допустимы в пределах блока BEGIN…END, некоторые инструкции Transact-SQLTransact-SQL не следует группировать вместе в пределах одного пакета (блока инструкций).Although all Transact-SQLTransact-SQL statements are valid within a BEGIN…END block, certain Transact-SQLTransact-SQL statements should not be grouped together within the same batch (statement block).
Оператор if else
И так мы узнали, что оператор позволяет выполнять инструкции в том случае, если условие истинно. Если же условие оказывается ложно, то никаких действий не выполняется. Однако часто бывает необходимо выполнить одни инструкции, если определенное условие истинно, и другие инструкции, если условие ложно. Именно для таких случаев используется ветвление . Оно состоит из оператора , за которым следует блок инструкций и ключевого слова , за которым следует другой блок инструкций.
Синтаксис оператора :

Оператор else не является обязательным. Блок инструкций расположенный после выполняется по умолчанию, т.е. когда условное выражение в возвращает значение . Оператор не может быть использован отдельно от оператора . Блок должен располагаться только после оператора , его можно рассматривать, как действие по умолчанию.
Немного изменив наш предыдущий пример, мы можем увидеть, как работает оператор , если условие возвращает значение :
<?php
$username = 'Holly';
if ($username == 'Admin') {
echo 'Добро пожаловать на страницу администратора.';
}
else {
echo 'Добро пожаловать в гостевую страницу';
}
?>
Оператор может быть вложенным. Такие вложенные условные операторы встречаются на практике достаточно часто. Оператор является вложенным, если он расположен внутри другого блока или . Если в коде используется несколько операторов подряд, то всегда относится к ближайшему :
<?php
if($i) { // внутренний блок if($i)
if($a) инструкция;
if($b) инструкция;
else инструкция; // этот else относится к if($b) - так как он ближе
}
else инструкция; // этот else относится к if($i)
?>
Последний не относится к , так как он находится не во внутреннем блоке, поэтому ближайший к нему получается . Оператор расположенный внутри блока относится к , потому что этот — является ближайшим к нему.
2.2.5. else и elif¶
То, что мы писали выше — это, как говорят, краткая форма . Она указывает только что делать, если условие выполнилось.
Есть полная форма , она указывает, что делать, если условие выполнилось, а что делать, если оно не выполнилось:
if a ==
print("Ноль")
else
print("Не ноль")
Часть «что делать, если условие не выполнилось», начинается с команды (с двоеточием!), причем она должна быть на том же уровне отступа,
что и сам . Под , как и под , можно писать любые команды,
тоже с дополнительным отступом.
Пример:
if a ==
if b ==
print("Два нуля")
else
print("Только b не ноль")
else
if b ==
print("Только a не ноль")
else
print("Обе переменные не нули")
Естественно, в нельзя писать никаких еще условий — питон будет выполнять там код всегда, если условие соответствующего
не выполнилось. Иногда бывает нужно, если условие не выполнилось, то проверить какое-нибудь еще условие.
Это, конечно, можно писать так:
if a <
print("Отрицательное")
else
if a ==
print("Ноль")
else
print("Положительное")
Но это длинновато и сложно, плюс если таких вариантов много, то получится очень большой отступ. Поэтому есть еще специальная команда
, обозначающая . Можно писать так:
if a <
print("Отрицательное")
elif a ==
print("Ноль")
else
print("Положительное")
Это полный эквивалент предыдущего кода, только чуть покороче и — главное — без лишних отступов ступенькой.
Еще раз: — это просто сокращение от , позволяющее чуть красивее писать код, ничего больше.
Еще пример:
if d = "Notrh"
print("Идем на север")
elif d == "South"
print("Идем на юг")
elif d == "West"
print("Идем на запад")
elif d == "East"
print("Идем на восток")
else
print("??!!")
То же самое можно было бы написать и через /, но были бы очень некрасивые отступы.
использование фигурных скобок
Если присутствует только один оператор то фигурные скобки ставить необязательно, если в блоке больше чем один оператор, то фигурные скобки нужны обязательно.
Пример приведенный выше, будет прекрасно работать и без фигурных скобок, так как в обоих блоках находятся только по одному оператору.
Внутри if можно написать любые логические операции, будь то они простые или сложные. Можно использовать и операторы AND (&&) и OR (||).
Замечание! Присутствие блока else, не является обязательным.
Например, если a равен b, и c равен d, то выводим соответствующее сообщение, иначе если отсутствует блок else, то просто идем дальше, к следующей строчке.
var a = 4,
b = 4,
c = 8,
d = 8;
if( (a == b) && (c == d) ) document.write("a равен b И c равен d");
document.write("Следующая строчка кода");
Подробная инструкция по использованию условных операторов «if», «else» и «elseif» в PHP
Итак, представьте, что у вас есть переменная, которая содержит в себе количество яблок, – поскольку на результат вы никак не влияете, то относительно полученного числа вы можете составить условие и, например, выводить соответствующую надпись.
Реализация:
Здесь «==» говорит нам о том, что если переменная равняется 5, то выводим сообщение. Противоположное действие выполняется с помощью неравенства «!=»:
А так мы можем сделать проверку, равняется ли переменная 5 или 8:
Выше описанные примеры используют только оператор «if». А теперь тот же случай мы рассмотрим при использовании еще одного оператора – «else».
Реализация:
То есть здесь мы выполняем два действия: если у человека есть 5 яблок, то выводим одно сообщение, если же нет – то выводим другое сообщение.
Соответственно, условие при проверке двух вариантов переменной будет выглядеть следующим образом:
«else» само по себе не включает никаких проверок и используется всегда в конце – как следствие, результат, если предыдущие условия не выполнены.
Помимо двух этих операторов есть оператор «elseif», его основная задача – это продолжение оператора «if» с возможностью задать дополнительную проверку.
Реализация:
Здесь представлен вариант использования всех трех операторов. Первый (if) является обязательным, стартовым оператором, после него может не быть ничего, либо второй оператор (elseif) плюс третий (else) или сразу третий (else) или второй (elseif).
В качестве операторов сравнения вы можете использовать следующие:
- $x == $y – $x равно $y.
- $x != $y – $x не равно $y.
- $x <> $y – $x не равно $y.
- $x >= $y – $x больше или равно $y.
- $x > $y – $x строго больше $y.
- $x <= $y – $x меньше или равно $y.
- $x < $y – $x строго меньше $y.
- $x === $y – $x тождественно равно (идентично) $y.
- $x !== $y – $x тождественно не равно $y.
И в качестве логических операторов вы можете использовать:
- || – или.
- && – и.
- and – и.
- or – или.
- xor – исключающее или.
- ! – отрицание.
Как вы заметили, в последнем списке два раза встречаются «и» и «или» – разница их в том, что они имеют разную степень приоритета.
ИЛИ «||» находит первое истинное значение
Описанная выше логика соответствует традиционной. Теперь давайте поработаем с «дополнительными» возможностями JavaScript.
Расширенный алгоритм работает следующим образом.
При выполнении ИЛИ || с несколькими значениями:
Оператор выполняет следующие действия:
- Вычисляет операнды слева направо.
- Каждый операнд конвертирует в логическое значение. Если результат , останавливается и возвращает исходное значение этого операнда.
- Если все операнды являются ложными (), возвращает последний из них.
Значение возвращается в исходном виде, без преобразования.
Другими словами, цепочка ИЛИ возвращает первое истинное значение или последнее, если такое значение не найдено.
Например:
Это делает возможным более интересное применение оператора по сравнению с «чистым, традиционным, только булевым ИЛИ».
-
Получение первого истинного значения из списка переменных или выражений.
Представим, что у нас имеется ряд переменных, которые могут содержать данные или быть . Как мы можем найти первую переменную с данными?
С помощью :
Если бы и , и были ложными, в качестве результата мы бы наблюдали .
-
Сокращённое вычисление.
Операндами могут быть как отдельные значения, так и произвольные выражения. ИЛИ вычисляет их слева направо. Вычисление останавливается при достижении первого истинного значения. Этот процесс называется «сокращённым вычислением», поскольку второй операнд вычисляется только в том случае, если первого недостаточно для вычисления всего выражения.
Это хорошо заметно, когда выражение, указанное в качестве второго аргумента, имеет побочный эффект, например, изменение переменной.
В приведённом ниже примере не изменяется:
Если бы первый аргумент имел значение , то приступил бы к вычислению второго и выполнил операцию присваивания:
Присваивание – лишь один пример. Конечно, могут быть и другие побочные эффекты, которые не проявятся, если вычисление до них не дойдёт.
Как мы видим, этот вариант использования является «аналогом «. Первый операнд преобразуется в логический. Если он оказывается ложным, начинается вычисление второго.
В большинстве случаев лучше использовать «обычный» , чтобы облегчить понимание кода, но иногда это может быть удобно.
Оператор else if
Используйте оператор чтобы указать новое условие, если первое условие false (ложно).
Синтаксис
if (условие1) {
// блок кода, который будет выполнен, если условие1 true (истинно)}
else if (условие2) {
// блок кода, который будет выполнен, если условие1 false (ложно), а условие2 true (истинно)
} else {
// блок кода, который будет выполнен, если условие1 false (ложно), и условие2 false (ложно)}
Пример
Если время меньше, чем 10:00, создайте приветствие «Good morning» если нет, но время меньше, чем 20:00, создайте приветствие «Good day», иначе «Good evening»:
if (time < 10) {
greeting = «Good morning»;
}
else if (time < 20) {
greeting = «Good day»;
}
else {
greeting = «Good evening»;
}
Результат приветствия будет:
If constexpr, операторы if constexpr statements
Начиная с C++ 17, можно использовать инструкцию в шаблонах функций, чтобы принимать решения о ветвлении во время компиляции без необходимости прибегать к нескольким перегрузкам функций.Starting in C++17, you can use an statement in function templates to make compile-time branching decisions without having to resort to multiple function overloads. Для Microsoft. Эта форма доступна в Visual Studio 2017 версии 15,3, и для нее требуется по крайней мере параметр компилятора.Microsoft-specific: This form is available starting in Visual Studio 2017 version 15.3, and requires at least the compiler option.
Например, .Example
В этом примере показано, как можно написать одну функцию, которая обрабатывает распаковку параметров.This example shows how you can write a single function that handles parameter unpacking. Никаких перегрузок с нулевым параметром не требуется:No zero-parameter overload is needed:
JavaScript
JS Array
concat()
constructor
copyWithin()
entries()
every()
fill()
filter()
find()
findIndex()
forEach()
from()
includes()
indexOf()
isArray()
join()
keys()
length
lastIndexOf()
map()
pop()
prototype
push()
reduce()
reduceRight()
reverse()
shift()
slice()
some()
sort()
splice()
toString()
unshift()
valueOf()
JS Boolean
constructor
prototype
toString()
valueOf()
JS Classes
constructor()
extends
static
super
JS Date
constructor
getDate()
getDay()
getFullYear()
getHours()
getMilliseconds()
getMinutes()
getMonth()
getSeconds()
getTime()
getTimezoneOffset()
getUTCDate()
getUTCDay()
getUTCFullYear()
getUTCHours()
getUTCMilliseconds()
getUTCMinutes()
getUTCMonth()
getUTCSeconds()
now()
parse()
prototype
setDate()
setFullYear()
setHours()
setMilliseconds()
setMinutes()
setMonth()
setSeconds()
setTime()
setUTCDate()
setUTCFullYear()
setUTCHours()
setUTCMilliseconds()
setUTCMinutes()
setUTCMonth()
setUTCSeconds()
toDateString()
toISOString()
toJSON()
toLocaleDateString()
toLocaleTimeString()
toLocaleString()
toString()
toTimeString()
toUTCString()
UTC()
valueOf()
JS Error
name
message
JS Global
decodeURI()
decodeURIComponent()
encodeURI()
encodeURIComponent()
escape()
eval()
Infinity
isFinite()
isNaN()
NaN
Number()
parseFloat()
parseInt()
String()
undefined
unescape()
JS JSON
parse()
stringify()
JS Math
abs()
acos()
acosh()
asin()
asinh()
atan()
atan2()
atanh()
cbrt()
ceil()
clz32()
cos()
cosh()
E
exp()
expm1()
floor()
fround()
LN2
LN10
log()
log10()
log1p()
log2()
LOG2E
LOG10E
max()
min()
PI
pow()
random()
round()
sign()
sin()
sqrt()
SQRT1_2
SQRT2
tan()
tanh()
trunc()
JS Number
constructor
isFinite()
isInteger()
isNaN()
isSafeInteger()
MAX_VALUE
MIN_VALUE
NEGATIVE_INFINITY
NaN
POSITIVE_INFINITY
prototype
toExponential()
toFixed()
toLocaleString()
toPrecision()
toString()
valueOf()
JS OperatorsJS RegExp
constructor
compile()
exec()
g
global
i
ignoreCase
lastIndex
m
multiline
n+
n*
n?
n{X}
n{X,Y}
n{X,}
n$
^n
?=n
?!n
source
test()
toString()
(x|y)
.
\w
\W
\d
\D
\s
\S
\b
\B
\0
\n
\f
\r
\t
\v
\xxx
\xdd
\uxxxx
JS Statements
break
class
continue
debugger
do…while
for
for…in
for…of
function
if…else
return
switch
throw
try…catch
var
while
JS String
charAt()
charCodeAt()
concat()
constructor
endsWith()
fromCharCode()
includes()
indexOf()
lastIndexOf()
length
localeCompare()
match()
prototype
repeat()
replace()
search()
slice()
split()
startsWith()
substr()
substring()
toLocaleLowerCase()
toLocaleUpperCase()
toLowerCase()
toString()
toUpperCase()
trim()
valueOf()
Условный оператор if
Синтаксис оператора if:
if (условие) инструкция
Условный оператор if состоит из:
- ключевого слова if;
- условия (выражения в круглых скобках), которое должно равняться или (или быть приведено к одному из этих значений);
- инструкции, которую нужно выполнить, если условие является или приведено к нему.
Например:
if (true) count = 4;
В этом примере в качестве условия используется значение . Это означает, что инструкция будет выполняться всегда. Данный пример просто приведен для пояснения принципа работы оператора if, т.к. он лишён всякого смысла.
Например, увеличим значение переменной на 1, если она (её тип) является числом:
if (typeof votes === 'number') votes++;
Если необходимо выполнить несколько инструкций, то их необходимо поместить в фигурные скобки:
if (typeof votes === 'number') {
votes++;
console.log('Число голосов: ' + votes);
}
Рекомендуется, использовать фигурные скобки даже когда используется одна инструкция:
if (typeof votes === 'number') {
votes++;
}
Конструкция elseif/else if
Оператор вычисляет значение условного выражения и выполняет тот или иной фрагмент программного кода. Но что, если требуется выполнить один из многих фрагментов? Если вам нужно проверить несколько условий подряд, то для этого подойдет конструкция или (это одна и та же конструкция, просто по разному записана). Формально она не является самостоятельной конструкцией PHP — это лишь распространенный стиль программирования, заключающийся в применении повторяющихся операторов . Она позволяет проверять дополнительные условия, пока не будет найдено истинное или достигнут блок . Конструкция elseif/else if должна располагаться после оператора и перед оператором , если такой имеется.
<?php
$username = 'Арни';
if ($username == 'Админ') {
echo 'Добро пожаловать на страницу администратора.';
}
elseif ($username == 'Гость') {
echo 'Доступ запрещен!';
}
else if ($username == 'Арни') {
echo "Добро пожаловать $username!";
}
else {
echo ('Добро пожаловать в гостевую страницу');
}
?>
Здесь проверяется три условия, и, в зависимости от значения переменной , выполняются разные действия.
На самом деле в этом фрагменте нет ничего особенного. Это просто последовательность операторов , где каждый оператор является частью конструкции предыдущего . Для тех кто впервые столкнулся с такой формой записи и ему не очень понятно, как это работает, мы перепишем этот же пример, только в эквивалентной синтаксической форме, полностью показывающей вложенность конструкций:
<?php
$username = 'Арни';
if ($username == 'Админ') {
echo 'Добро пожаловать на страницу администратора.';
}
else {
if ($username == 'Гость') {
echo 'Доступ запрещен!';
}
else {
if ($username == 'Арни') {
echo "Добро пожаловать $username!";
}
else {
echo ('Добро пожаловать в гостевую страницу');
}
}
}
?>
С этой темой смотрят:
- Тернарный оператор
- switch
- Альтернативный синтаксис
Логические операторы
Когда нам нужно комбинировать условия удобно использовать логические операторы.
-not
Использование этого оператора переворачивает результат. Если результат значения равен False, то используя not, выражение все равно будет выполнен:

Если вы хотите использовать предыдущие операторы тоже, тогда их нужно помещать между скобок:
У -not есть алиас в виде восклицательного знака ! :

-and
And позволяет связывать несколько значений. Условие будет выполнено только в том случае, если все значения будут True:

Если хотя бы одно из выражений было бы равно False, то все условие относилось бы к False:

Мы так же можем проверять существование нескольких значений:
-or
Отличия -and от -or в том, что нам достаточно получить True только от одного выражения:

Вы можете комбинировать несколько операторов для верного выполнения условия, главное помещать их в кавычки:
Вам так же будет интересно:
Условный оператор if
Условный оператор if(…) вычисляет условие в скобках и, если результат true, то выполняет блок кода. Таким образом, инструкция if (…) вычисляет выражение в скобках и преобразует результат к логическому типу.
Например:
let year = prompt(
«В каком году была опубликована спецификация ECMAScript-2015?»,
«»
);
if (year == 2015) alert(«Вы правы!»); // если введено число 2015 (результат сравнения true), будет выведено сообщение «Вы правы!»
|
1 |
let year=prompt( «В каком году была опубликована спецификация ECMAScript-2015?», «» ); if(year==2015)alert(«Вы правы!»);// если введено число 2015 (результат сравнения true), будет выведено сообщение «Вы правы!» |
Если мы хотим выполнить более одной инструкции, то нужно заключить блок кода в фигурные скобки {}:
if (year == 2015) {
alert(«Правильно!»);
alert(«Действительно, в 2015 году»);
}
|
1 |
if(year==2015){ alert(«Правильно!»); alert(«Действительно, в 2015 году»); } |
Инструкция (условный оператор) switch…case
Инструкция switch сравнивает значение выражения expression с значениями, перечисленными внутри неё в блоках case, а затем выполняет соответствующие инструкции.
JavaScript
switch (expression) {
case value1:
//Здесь выполняются инструкции, если результат выражения expression равен value1
case value2:
//Инструкции, соответствующие value2
…
case valueN:
//Инструкции, соответствующие значению valueN
//statementsN
default:
//Здесь находятся инструкции, которые выполняются при отсутствии соответствующего значения
//statements_default
}
|
1 |
switch(expression){ case value1: //Здесь выполняются инструкции, если результат выражения expression равен value1 break; case value2: //Инструкции, соответствующие value2 break; … case valueN: //Инструкции, соответствующие значению valueN //statementsN break; default //Здесь находятся инструкции, которые выполняются при отсутствии соответствующего значения //statements_default break; } |
Если выражение соответствует какому-то случаю, то выполняются инструкции этого случая. Если несколько случаев соответствуют значению, будет использован только первый случай.
Пример:
JavaScript
let color = «black»;
switch (color) {
case «yellow»: // в case указывается конкретное значение (не может быть выражением)
console.log(`Color is ${color}`);
break; // если не будет break, то будут выполняться следующие case
case «red»:
console.log(`Color is ${color}`);
break;
default:
// по умолчанию (если ни один case не сработал), не является обязательным
console.log(«Цвет не выбран»);
}
|
1 |
let color=»black»; switch(color){ case»yellow»// в case указывается конкретное значение (не может быть выражением) console.log(`Coloris${color}`); break;// если не будет break, то будут выполняться следующие case case»red» console.log(`Coloris${color}`); break; default // по умолчанию (если ни один case не сработал), не является обязательным console.log(«Цвет не выбран»); } |
«Склеенные» case
JavaScript
switch (color) {
case «yellow»: // или yellow
case «red»: // или red
console.log(`Color is yellow or red`);
break;
default:
console.log(`Color не yellow, и не red, а ${color}`);
}
|
1 |
switch(color){ case»yellow»// или yellow case»red»// или red console.log(`Color isyellow orred`); break; default console.log(`Colorне yellow,инеred,а${color}`); } |
- switch…case обычно более компактен, чем множество вложенных if…else , и поэтому более удобочитаем;
- switch…case может быть оптимизирован компилятором с помощью таблицы переходов, что повышает быстродействие (switch отправляет сразу же в соответствующий case , вместо того чтобы оценивать все условия, которые потребовались бы в цепочке if…else ).
Тернарные операции
Тернарная условная операция имеет 3 аргумента и возвращает свой второй или третий операнд в зависимости от значения логического выражения, заданного первым операндом. Синтаксис тернарной операции в языке Си
Условие ? Выражение1 : Выражение2;
УсловиеВыражение1Выражение2
123456789101112131415
#define _CRT_SECURE_NO_WARNINGS // для возможности использования scanf#include <stdio.h>#include <stdlib.h> // для использования функции systemint main() { int key; // объявляем целую переменную key system(«chcp 1251»); // переходим в консоли на русский язык system(«cls»); // очищаем окно консоли printf(«Введите номер пункта, 1 или 2: «); scanf(«%d», &key); // вводим значение переменной key key == 1 ? printf(«\n Выбран первый пункт») : (key == 2 ? printf(«\n Выбран второй пункт») : printf(«\n Первый и второй пункты не выбраны»)); getchar(); getchar(); return 0;}





