Skip to content

Instantly share code, notes, and snippets.

@sunmeat
Created October 2, 2025 10:41
Show Gist options
  • Save sunmeat/c23bf2e3a634efd92ad6c033dfda4699 to your computer and use it in GitHub Desktop.
Save sunmeat/c23bf2e3a634efd92ad6c033dfda4699 to your computer and use it in GitHub Desktop.
умови: іф та свіч
using System.Text;
namespace Conditions
{
class TestClass
{
}
class Program
{
static void Main()
{
Console.InputEncoding = Encoding.UTF8;
Console.OutputEncoding = Encoding.UTF8;
// гра в вгадування числа з умовою if
int maximum = 10;
Console.WriteLine("вгадайте число від 1 до {0}", maximum);
int userNumber = Convert.ToInt32(Console.ReadLine());
var rand = new Random();
double correctNumber = rand.NextDouble() * maximum;
correctNumber = Math.Round(correctNumber);
Console.WriteLine("правильне число {0}, а ваше {1}", correctNumber, userNumber);
// якщо число вгадано
if (correctNumber == userNumber)
{
Console.WriteLine("вітаємо!");
}
// демонстрація умов if з перевірками
int number = 1;
var obj = new TestClass();
// помилка: спроба перевести int в bool
//if (number)
if (number > 0)
{
Console.WriteLine("число {0}", number);
}
// помилка: спроба перевести testclass в bool
//if (obj)
if (obj != null)
{
Console.WriteLine("об'єкт testclass");
}
else
{
Console.WriteLine("нуль");
}
// switch на рядок
string name = "Олександр";
switch (name)
{
case "Олександр":
Console.WriteLine("привіт, " + name);
break;
case "Микола":
Console.WriteLine("добрий день, " + name);
break;
}
// switch на ціле число з fallthrough
int num = 0;
int price = 0;
switch (num)
{
// якщо кількість товару до 4 штук, то ціна 25 копійок за 1 одиницю товару
case 1:
// помилка: якщо в case присутня хоча б одна команда, то оператор break обов'язковий
//price = 30;
case 2:
case 3:
case 4:
price = 25;
break;
// якщо кількість товару від 5 до 8 штук, то ціна 23 копійки за 1 одиницю товару
case 5:
case 6:
case 7:
case 8:
price = 23;
break;
// інакше ціна нуль
default:
price = 0;
break;
}
Console.WriteLine("ціна {0}", price);
// вираз switch (c# 8+, доступний у .net 9)
Console.Write("введіть цифру від 1 до 3: ");
int inputNumber = int.Parse(Console.ReadLine());
string result = inputNumber switch
{
1 => "ви ввели число один.",
2 => "ви ввели число два.",
3 => "ви ввели число три.",
_ => "ви ввели щось інше.",
};
Console.WriteLine(result);
// демонстрація розширених можливостей pattern matching у switch (доступні з c# 9+ і актуальні в .net 9)
// наприклад, property patterns у switch expression
var value = new { Age = 25, Name = "Іван" };
string description = value switch
{
{ Age: > 18 and < 65 } => "доросла особа працездатного віку",
{ Age: < 18 } => "неповнолітня особа",
{ Age: >= 65 } => "пенсійний вік",
_ => "невідомий вік"
};
Console.WriteLine(description);
// інший приклад: relational patterns і logical patterns
int temperature = 25;
string weatherAdvice = temperature switch
{
< 0 => "холодно, одягніться тепло",
>= 0 and < 10 => "прохолодно",
>= 10 and < 20 => "помірна температура",
>= 20 and < 30 => "тепло",
>= 30 => "спекотно, пийте воду"
};
Console.WriteLine(weatherAdvice);
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment