Главная страница » C# » 53. Конструкция Switch
switch
в C#switch
— это управляющая конструкция, которая позволяет выбрать один из нескольких вариантов выполнения кода в зависимости от значения выражения. Она удобна, когда есть несколько условий, которые зависят от одного значения.
switch (выражение)
{
case значение1:
// Код для первого случая
break;
case значение2:
// Код для второго случая
break;
default:
// Код по умолчанию, если не совпало ни одно значение
break;
}
выражение
— переменная или значение, которое сравнивается с case
.case
— возможные значения.break
— завершает выполнение switch
, чтобы не выполнялись следующие case
.default
— выполняется, если ни одно значение не совпало.
int day = 3;
switch (day)
{
case 1:
Console.WriteLine("Понедельник");
break;
case 2:
Console.WriteLine("Вторник");
break;
case 3:
Console.WriteLine("Среда");
break;
case 4:
Console.WriteLine("Четверг");
break;
case 5:
Console.WriteLine("Пятница");
break;
case 6:
case 7:
Console.WriteLine("Выходной!");
break;
default:
Console.WriteLine("Некорректный номер дня");
break;
}
Среда
day == 3
, программа выведет "Среда"
.case 6:
и case 7:
объединены, так как оба означают выходной.
char operation = '+';
int a = 5, b = 3;
int result;
switch (operation)
{
case '+':
result = a + b;
break;
case '-':
result = a - b;
break;
case '*':
result = a * b;
break;
case '/':
result = (b != 0) ? a / b : 0;
break;
default:
Console.WriteLine("Неизвестная операция");
return;
}
Console.WriteLine($"Результат: {result}");
operation = '+'
, программа выполнит a + b
и выведет:
Результат: 8
switch
с string
(пример с меню)
string command = "start";
switch (command)
{
case "start":
Console.WriteLine("Запуск программы...");
break;
case "stop":
Console.WriteLine("Остановка программы.");
break;
default:
Console.WriteLine("Неизвестная команда.");
break;
}
Если command == "start"
, программа напечатает:
Запуск программы...
switch
без break
(падение вниз)Если не использовать break
, выполнение продолжится в следующем case
.
int number = 2;
switch (number)
{
case 1:
Console.WriteLine("Один");
case 2:
Console.WriteLine("Два");
case 3:
Console.WriteLine("Три");
default:
Console.WriteLine("Конец");
}
Вывод:
Два
Три
Конец
❗ Без break
выполнение продолжается до конца switch
.
switch
с return
(без break
)
string GetDayName(int day)
{
return day switch
{
1 => "Понедельник",
2 => "Вторник",
3 => "Среда",
4 => "Четверг",
5 => "Пятница",
6 or 7 => "Выходной",
_ => "Некорректный день"
};
}
Console.WriteLine(GetDayName(5)); // Пятница
switch
удобен для работы с фиксированными значениями.switch
-выражения.break
обязателен в классическом switch
, но не нужен в switch
-выражениях.switch
, если if-else
становится громоздким.Используйте switch
для удобства и читаемости кода! 🚀
Напишите программу, которая запрашивает у пользователя число от 1 до 4 и выводит соответствующее время года:
1
→ "Зима"
2
→ "Весна"
3
→ "Лето"
4
→ "Осень"
"Некорректное значение"
using System;
class Program
{
static void Main()
{
Console.Write("Введите число (1-4): ");
int season = Convert.ToInt32(Console.ReadLine());
string result = season switch
{
1 => "Зима",
2 => "Весна",
3 => "Лето",
4 => "Осень",
_ => "Некорректное значение"
};
Console.WriteLine(result);
}
}
Попробуйте написать и запустить этот код, чтобы убедиться в правильности выполнения операций и особенностях работы с числами с плавающей точкой.
Телефон: +375 33 910-08-92
Email: info@codefor.tech
Адрес: г. Барановичи, ул. Пирогова, д. 7
© 2024-2025 Все права защищены. CodeFor.