Created
October 2, 2025 10:41
-
-
Save sunmeat/c23bf2e3a634efd92ad6c033dfda4699 to your computer and use it in GitHub Desktop.
умови: іф та свіч
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| 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