207.24K
Category: programmingprogramming

12_Условные конструкции

1.

Условные конструкции
Условные конструкции - один из базовых компонентов многих языков
программирования, которые направляют работу программы по одному из
путей в зависимости от определенных условий.
В языке C# используются следующие условные конструкции:
if..else и switch..case

2.

Конструкция if/else
Конструкция if/else проверяет истинность некоторого условия и в
зависимости от результатов проверки выполняет определенный код:
int num1 = 8;
int num2 = 6;
if(num1 > num2) // Если num1 больше num2, то:
{
Console.WriteLine($"Число {num1} больше числа {num2}");
}

3.

Конструкция if/else
После ключевого слова if ставится условие. И если это условие
выполняется, то срабатывает код, который помещен далее в блоке if
после фигурных скобок. В качестве условий выступают ранее
рассмотренные операции сравнения.
В данном случае у нас первое число больше второго, поэтому
выражение num1 > num2 истинно и возвращает true, следовательно,
управление переходит к строке
Console.WriteLine("Число {num1} больше числа {num2}");

4.

Конструкция if/else
Но что, если мы захотим, чтобы при несоблюдении условия также
выполнялись какие-либо действия? В этом случае мы можем добавить
блок else:
int num1 = 8;
int num2 = 6;
if(num1 > num2)
{
Console.WriteLine($"Число {num1} больше числа {num2}");
}
else
{
Console.WriteLine($"Число {num1} меньше числа {num2}");
}

5.

Конструкция if/else
Но при сравнении чисел мы можем насчитать три состояния: первое число больше
второго, первое число меньше второго и числа равны. Используя конструкцию else if, мы
можем обрабатывать дополнительные условия:
int num1 = 8;
int num2 = 6;
if(num1 > num2)
{
Console.WriteLine($"Число {num1} больше числа {num2}");
}
else if (num1 < num2)
{
Console.WriteLine($"Число {num1} меньше числа {num2}");
}
else
{
Console.WriteLine("Число num1 равно числу num2");
}

6.

Конструкция if/else
Также мы можем соединить сразу несколько условий, используя
логические операторы:
int num1 = 8;
int num2 = 6;
if(num1 > num2 && num1==8) // && логическое И
{
Console.WriteLine($"Число {num1} больше числа {num2}");
}
В данном случае блок if будет выполняться, если num1 > num2 равно
true и num1==8 равно true.

7.

Конструкция switch
Конструкция switch/case аналогична конструкции if/else, так как
позволяет обработать сразу несколько условий:
Console.WriteLine("Нажмите Y или N");
string selection = Console.ReadLine();
switch (selection)
{
case "Y":
Console.WriteLine("Вы нажали букву Y");
break;
case "N":
Console.WriteLine("Вы нажали букву N");
break;
default:
Console.WriteLine("Вы нажали неизвестную букву");
break;
}

8.

Конструкция switch
После ключевого слова switch в скобках идет сравниваемое
выражение. Значение этого выражения последовательно сравнивается
со значениями, помещенными после оператора сase. И если
совпадение будет найдено, то будет выполняться определенный блок
сase.
В конце каждого блока сase должен ставиться один из операторов
перехода: break, goto case, return или throw. Как правило, используется
оператор break. При его применении другие блоки case выполняться
не будут.

9.

Конструкция switch
Однако если мы хотим, чтобы, наоборот, после выполнения текущего блока case
выполнялся другой блок case, то мы можем использовать вместо break оператор
goto case:
int number = 1;
switch (number)
{
case 1:
Console.WriteLine("case 1");
goto case 5; // переход к case 5
case 3:
Console.WriteLine("case 3");
break;
case 5:
Console.WriteLine("case 5");
break;
default:
Console.WriteLine("default");
break;
}

10.

Конструкция switch
Если мы хотим также обработать ситуацию, когда совпадения не
будет найдено, то можно добавить блок default, как в примере выше.
Применение оператора return позволит выйти не только из блока
case, но и из вызывающего метода. То есть, если в методе Main после
конструкции switch..case, в которой используется оператор return, идут
какие-либо операторы и выражения, то они выполняться не будут, а метод
Main завершит работу.
Оператор throw применяется для выброса ошибок.

11.

Тернарная операция
Тернарная операция имеет следующий синтаксис:
[первый операнд - условие] ? [второй операнд] : [третий операнд].
Здесь сразу три операнда. В зависимости от условия тернарная
операция возвращает второй или третий операнд: если условие равно
true, то возвращается второй операнд; если условие равно false, то
третий.

12.

Тернарная операция
Например:
int x=3;
int y=2;
Console.WriteLine("Нажмите + или -");
string selection = Console.ReadLine();
int z = selection=="+"? (x+y) : (x-y);
Console.WriteLine(z);
Здесь результатом тернарной операции является переменная z. Если
мы выше вводим "+", то z будет равно второму операнду - (x+y). Иначе z
будет равно третьему операнду.

13.

В помощь к решению задач
! – оператор «НЕ» является унарным и возвращает противоположное
значение операнда.
static void Main(string[] args)
{
bool a, b = true, c = false;
a = !b; // a = false
a = !c; // a = true
}

14.

В помощь к решению задач
|| - оператор «ИЛИ» является бинарным и возвращает false только
тогда, когда оба операнда равны false, в остальных случаях результат
будет true;
static void Main(string[] args)
{
bool a, bTrue = true, bFalse = false;
a = bFalse || bFalse; // a = false
a = bFalse || bTrue; // a = true
a = bTrue || bFalse; // a = true
a = bTrue || bTrue; // a = true
}

15.

В помощь к решению задач
&& - оператор «И» является бинарным и возвращает true только тогда,
когда оба операнда равны true, в остальных случаях результат будет
false;
static void Main(string[] args)
{
bool a, bTrue = true, bFalse = false;
a = bFalse && bFalse; // a = false
a = bFalse && bTrue; // a = false
a = bTrue && bFalse; // a = false
a = bTrue && bTrue; // a = true
}

16.

В помощь к решению задач
Операторы сравнения
static void Main(string[] args)
{
bool a;
int b = 2, c = 3, d = 2;
a = b > c; // a = false
a = b < c; // a = true
a = b >= c; // a = false
a = b >= d; // a = true
a = b == c; // a = false
a = b == d; // a = true
a = b != c; // a = true
}
Оператор
>
<
>=
<=
==
!=
Назв ан ие
больше
меньше
больше или равно
меньше или равно
равно
неравно

17.

В помощь к решению задач
Пример использования оператора «if-else» в программе, которая
проверяет вводимое число на чётность:
static void Main(string[] args)
{
int a;
Console.WriteLine("Введите число:");
a = Convert.ToInt32(Console.ReadLine()); // вводим данные с клавиатуры
if (a % 2 == 0) //проверяем число на чётность путем нахождения остатка от деления числа на 2
{
Console.WriteLine("Число " + a + " - чётное");
}
else
{
Console.WriteLine("Число " + a + " - нечётное");
}
Console.ReadKey();
}

18.

В помощь к решению задач
Пример программы, которая определяет, какое из двух введенных чисел
больше:
static void Main(string[] args)
{
int a, b;
Console.WriteLine("Введите первое число:");
a = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Введите второе число:");
b = Convert.ToInt32(Console.ReadLine());
if (a > b)
Console.WriteLine("Первое число больше второго");
else if (a < b)
Console.WriteLine("Второе число больше первого");
else
Console.WriteLine("Числа равны");
Console.ReadKey();
}

19.

Решение задач
23. Вывести на экран наибольшее из двух заданных чисел.
24. Вывести на экран наибольшее из трёх заданных чисел.
25. Пользователь вводит 3 числа. Программа печатает их в порядке
убывания.
26. Если значение переменной х меньше 0, то поменять его на
противоположное.
27. Написать программу, проверяющую, принадлежит ли число,
введённое с клавиатуры, интервалу (0:5).
28. Составить программу вычисления стоимости покупки с учётом
скидки. Скидка в 10% предоставляется в том случае, если сумма покупки
больше 10000 рублей.

20.

Решение задач
29. Составить программу, которая проверяет, делится ли на 13 целое
число, введённое пользователем с клавиатуры.
30. Пользователь вводит натуральное однозначное число в диапазоне
от 1 до 7, программа в ответ печатает название дня недели.
31. Пользователь вводит трехзначное целое число. Программа
печатает на экране наибольшую из цифр этого числа.
32. Написать программу для подсчёта суммы только положительных из
3-х данных чисел.
33. Даны три числа. Написать программу для подсчёта количества
чисел равных 0.

21.

Решение задач
34. Составить программу, в которой из 3-х введённых с клавиатуры
чисел, возводятся в квадрат положительные, а отрицательные остаются
без изменения.
35. Определить, является ли данное целое число чётным.
36. Даны целые числа а, b, с. Если a <=b <=с, то все числа заменить их
квадратами, если а> b> с, то каждое число заменить наибольшим из них, в
противном случае сменить знак каждого числа.
37. Составить программу нахождения произведения 2-х наибольших из
3-х вводимых с клавиатуры.
38. Составить программу, которая определяет вид треугольника по
длинам его сторон.

22.

Решение задач
39. Меньшее из двух чисел а и b заменить на 0, а в случае равенства
заменить оба.
40. Пользователь вводит двузначное целое число. Программа
печатает на экране наибольшую из цифр этого числа.
41. Составьте программу, которая «задумывает» случайное число в
промежутке от от 1 до 5 и предлагает пользователю его отгадать.
42. Составьте программу, которая «задумывает» случайное число в
промежутке от от 1 до 10 и предлагает пользователю его отгадать с трёх
попыток. При этом, если вводимое пользователем число больше
загаданного, то программа печатает слово «Больше!», а если меньше, то
слово «Меньше!».

23.

Решение задач
43. Дракон каждый год отращивает по три головы, но после того, как
ему исполнится 100 лет - только по две. Сколько голов и глаз у дракона,
которому N лет?
44. Задача "Разборчивая принцесса". В прихожей у принцессы длинная очередь женихов. Принцессе нравятся только голубоглазые
маленького роста. Устав принимать женихов и отбирать из них
подходящих, принцесса вместо себя поставила компьютер, написав для
него программу, которая говорит ВЫ МНЕ ПОДОЙДЁТЕ тем, у кого цвет
глаз голубой и рост меньше 160 см. Остальным программа говорит ДО
СВИДАНИЯ.
45. Человек вводит в компьютер число. Если оно находится в
интервале от 28 до 30, то нужно напечатать текст ПОПАЛ, если оно
больше или равно 30 - то ПЕРЕЛЁТ, если оно находится на отрезке от 0
до 28, то НЕДОЛЁТ, если число меньше нуля - НЕ БЕЙ ПО СВОИМ.

24.

Решение задач
46. Школьная отметка имеет название и обозначается цифрой.
Написать программу, которая определяет по значению отметки,
записанной цифрой, её название.
47. Группу детей, приезжающую в лагерь для отдыха, распределяют по
отрядам:
С 6 до 7 лет – 5 отряд
С 8 до 9 лет – 4 отряд
С 10 до 11 лет – 3 отряд
С 12 до 13 лет – 2 отряд
С 14 до 15 лет – 1 отряд
Составить программу, которая позволяла бы каждому выбрать свой
отряд.

25.

Решение задач
48. Ученик вводит с клавиатуры букву русского алфавита. Компьютер
должен сказать, какой звук эта буква: гласный, согласный звонкий,
согласный глухой.
49. Калькулятор. Ученик вводит с клавиатуры число, символ
арифметического действия (+, -, *, /) и ещё одно число. Компьютер должен
напечатать результат.
50. Составить программу, которая пересчитывает вес из фунтов в
килограммы, но в разных странах фунт «весит» по-разному. В России
фунт равен 409,5 граммов, в Англии - 453,592 грамма, а в Германии,
Дании и Исландии фунт весит 500 граммов.
51. Составить программу, которая вычисляет дату следующего дня,
используя дату сегодняшнего дня, представленными тремя переменными:
день, месяц, год.
English     Русский Rules