Вправа – обчислення виразу
- 11 хвилин
Логіка прийняття рішень використовується для встановлення альтернативних шляхів через код, де рішення про те, який шлях слід виконати, базується на оцінці виразу. Наприклад, ви можете написати код, який виконує один із двох шляхів на основі введених користувачем даних. Якщо користувач введе букву "а", код виконає один блок коду. Якщо ввести букву "б", код виконає інший блок коду. У цьому прикладі ви керуєте шляхом виконання на основі значення, призначеного рядку. Код вибирає шлях виконання на основі виразу, способу обчислення цього виразу та базової логіки, яка використовується для визначення шляхів.
Вивчення способу побудови та оцінки виразу – це гарне місце для початку.
Що таке вираз?
Вираз – це будь-яке поєднання значень (літералів або змінних), операторів і методів, які повертають одне значення. Інструкція – це повна інструкція в C#, а оператори складають один або кілька виразів. Наприклад, наведений нижче ifоператор містить один вираз , який повертає одне значення:
if (myName == "Luiz")
Можливо, ви думали, що значення, повернуте виразом, буде числом або, можливо, рядком. Це правда, що розробники програм використовують різні типи виразів для різних цілей. У цьому випадку, коли ви розробляєте інструкцію if з вибору, ви використовуватимете вираз, який повертає true або false. Розробники називають цей тип виразу логічним виразом. Якщо код містить логічний вираз, повернуте значення завжди є одним true або false значенням.
Логічні вирази важливі, оскільки код може використовувати ці вирази для визначення блоку коду для виконання.
Існує багато різних типів операторів, які можна використовувати в логічному виразі. Наприклад, наведена if вище інструкція використовує оператор == рівності, щоб перевірити, чи призначено змінну рядка певному значенню. Вибраний оператор залежатиме від доступних шляхів коду, умов, пов'язаних зі шляхами, і базової логіки програми.
Оцінка рівності та нерівності
Одна з найпоширеніших оцінок коду – це перевірка того, чи рівні два значення. Перевіряючи рівність, ви знайдете оператор == рівності між двома значеннями, які перевіряються. Якщо значення з обох боків оператора рівності еквівалентні, вираз повернеться true. В іншому разі він повернеться false.
І навпаки, також може знадобитися перевірити, чи не рівні два значення. Щоб перевірити на нерівність, ви використовуватимете оператор != нерівності між двома значеннями.
Ви можете задатися питанням, чому вам потрібні як оператори рівності, так і нерівності. Причина стане зрозумілішою, коли ви дізнаєтеся, як створювати розгалуження і починати писати реальний світовий код. Два оператори, які виконують протилежні завдання, дають змогу бути виразнішими та компактнішими.
Тепер настав час підготувати середовище кодування та почати писати код, який обчислює логічні вирази.
Підготовка середовища кодування
Цей модуль містить практичні дії, які допоможуть вам побудувати та запустити демонстраційний код. Вам рекомендується виконати ці дії, використовуючи Visual Studio Code як середовище розробки. Використання коду Visual Studio для цих дій допоможе вам стати більш зручним написанням і виконанням коду в середовищі розробників, яке використовують професіонали по всьому світу.
Відкрийте Код Visual Studio.
Щоб відкрити код Visual Studio, можна скористатися меню "Пуск" Windows (або еквівалентним ресурсом для іншої ОС).
У меню Код Visual Studio Файл виберіть Відкрити папку.
У діалоговому вікні Відкрити папку перейдіть до папки "Робочий стіл Windows".
Якщо у вас є інше розташування папки, де зберігаються проекти коду, натомість можна використовувати це розташування папки. Для цього навчання важливо мати розташування, яке легко знайти та запам'ятати.
У діалоговому вікні Відкрити папку виберіть Вибрати папку.
Якщо з'явиться діалогове вікно безпеки з запитанням, чи довіряєте ви авторам, виберіть Так.
У меню коду Visual Studio Code виберіть Новий термінал.
Зверніть увагу, що в командному рядку на панелі терміналів відображається шлях до папки для поточної папки. Наприклад:
C:\Users\someuser\Desktop>Примітка
Якщо ви працюєте на власному ПК, а не в ізольованому середовищі або в розміщеному середовищі, а завершили інші модулі Microsoft Learn у цій серії C# , можливо, ви вже створили папку проекту для зразків коду. У такому разі можна пропустити наступний крок, який використовується для створення консолі в папці TestProject.
У командному рядку термінала, щоб створити нову програму консолі в указаній папці, введіть такий запит:
dotnet new console -o ./CsharpProjects/TestProjectЦя команда .NET CLI використовує шаблон програми .NET для створення нового проекту програми консолі C# у вказаному розташуванні папки. Ця команда створює папки CsharpProjects і TestProject і використовує TestProject як ім'я
.csprojфайлу.Якщо відображається повідомлення про те, що файли вже існують, виконайте наступні кроки. Ви повторно використовуватимете наявні файли проекту.
У поданні EXPLORER розгорніть папку CsharpProjects .
Має відобразитися папка TestProject і два файли, файл програми C# з іменем Program.cs і файл проекту C# з іменем TestProject.csproj.
У меню Код Visual Studio Файл виберіть Відкрити папку.
У діалоговому вікні Відкрити папку виберіть папку CsharpProjects , а потім натисніть кнопку Вибрати папку.
У поданні EXPLORER розгорніть папку TestProject і виберіть Program.cs.
Видалення наявних рядків коду.
Ви використовуватимете цей проект консолі C# для створення, створення та виконання зразків коду під час цього модуля.
Закрийте панель терміналів.
Використання оператора рівності
Переконайтеся, що на панелі "Редактор" відкрито код Visual Studio Code і Program.cs.
Примітка
Program.cs має бути пустим. Якщо це не так, виберіть і видаліть усі рядки коду.
Введіть наведений нижче код у редактор коду Visual Studio.
Console.WriteLine("a" == "a"); Console.WriteLine("a" == "A"); Console.WriteLine(1 == 2); string myValue = "a"; Console.WriteLine(myValue == "a");У меню Файл код Visual Studio Code виберіть Зберегти.
Перед створенням або запуском коду необхідно зберегти файл Program.cs.
На панелі EXPLORER, щоб відкрити термінал у розташуванні папки TestProject, клацніть правою кнопкою миші TestProject , а потім виберіть Відкрити в інтегрованому терміналі.
Відкриється панель терміналів. Термінал має містити командний рядок, який показує, що термінал відкрито в папці TestProject.
У командному рядку термінала, щоб запустити код, введіть dotnet виконати і натисніть клавішу Enter.
Примітка
Якщо відображається повідомлення "Не вдалося знайти проект для запуску", переконайтеся, що в командному рядку термінала відображається очікуване розташування папки TestProject. Наприклад:
C:\Users\someuser\Desktop\csharpprojects\TestProject>Ви побачите наведений нижче результат.
True False False True
Покращення перевірки рівності рядків за допомогою вбудованих допоміжних методів рядка
Ви можете бути здивовані виходом Console.WriteLine("a" == "A");рядка false . Під час порівняння рядків регістр має значення.
Крім того, зверніть увагу на цей рядок коду:
Console.WriteLine("a" == "a ");
Тут ви додали символ пробілу в кінці рядка. Цей вираз також виводитиметься false.
У деяких випадках наявність символу пробілу до або після тексту може бути цілком прийнятним. Однак, якщо потрібно прийняти збіг, який не є точним, спочатку можна "масажувати" дані. "Масове використання" даних означає, що ви виконуєте деяке очищення, перш ніж виконувати порівняння рівності.
Наприклад, враховуйте випадок, коли ви збираєте введені користувачем дані в циклі. Після введення кожного значення ви можете надати користувачу запит, щоб визначити, чи потрібно продовжити, наприклад Do you want to continue (Y/N)?. Якщо користувач хоче продовжити, він, імовірно, введе y або Y. Ви хочете, щоб код інтерпретував обидва значення однаково, навіть якщо y він не еквівалентний Y.
Перш ніж перевіряти значення двох рядків на рівність, особливо якщо користувач ввів одне або обидва значення, слід:
- Переконайтеся, що обидва рядки мають верхній або нижній регістр, використовуючи
ToUpper()метод абоToLower()допоміжний метод для будь-якого значення рядка. - Видаліть пробіли на початку або в кінці за допомогою методу
Trim()helper для будь-якого значення рядка.
Ви можете покращити попередню перевірку рівності, прикувавши ці два допоміжні методи до обох значень, як показано в наведеному нижче коді:
Замініть код у редакторі коду Visual Studio на такий код:
string value1 = " a"; string value2 = "A "; Console.WriteLine(value1.Trim().ToLower() == value2.Trim().ToLower());Збережіть кодовий файл, а потім за допомогою коду Visual Studio запустіть код.
Зверніть увагу, що коли ви запускаєте код цього разу, він виводить значення True.
Використання оператора нерівності
Використовуйте оператор
//примітки в рядку, щоб прокоментувати весь код із попереднього кроку.Введіть наведений нижче код у редактор коду Visual Studio.
Console.WriteLine("a" != "a"); Console.WriteLine("a" != "A"); Console.WriteLine(1 != 2); string myValue = "a"; Console.WriteLine(myValue != "a");Збережіть кодовий файл, а потім за допомогою коду Visual Studio запустіть код.
Ви побачите наведений нижче результат.
False True True False
Як і слід було очікувати, результат при використанні оператора нерівності протилежний тому, що ви бачили при використанні оператора рівності. Це означає, що код також розгалужуватиметься навпаки, що може бути саме тим, що вам потрібно.
Обчислення порівнянь
Працюючи з числовими типами даних, можна визначити, чи значення більше або менше за інше. Щоб виконати такі типи порівнянь, використовуйте такі оператори:
- Більше
> - Менше
< - Більше або дорівнює
>= - Менше або дорівнює
<=
Природно, що оператори == та != оператори, які використовувалися для порівняння значень рядків вище, також працюватимуть під час порівняння числових типів даних.
Використання операторів порівняння
Використовуйте оператор
//примітки в рядку, щоб прокоментувати весь код із попереднього завдання.Введіть наведений нижче код у редактор коду Visual Studio.
Console.WriteLine(1 > 2); Console.WriteLine(1 < 2); Console.WriteLine(1 >= 1); Console.WriteLine(1 <= 1);Збережіть кодовий файл, а потім за допомогою коду Visual Studio створіть і запустіть код.
Ви побачите такий результат:
False True True True
Методи, які повертають логічне значення
Деякі методи повертають логічне значення (true або false). У наведеній нижче вправі ви будете використовувати вбудований метод класу, щоб визначити, чи містить більший рядок певне слово або фразу, які є важливими для вашої String програми.
Примітка
Деякі типи даних мають методи, які виконують корисні службові завдання. Тип String даних містить багато з них. Кілька повертають логічне значення, включно Contains()з , StartsWith()і EndsWith(). Докладні відомості про них див. в модулі Microsoft Learn "Робота з буквено-цифровими даними за допомогою методів класу рядків у C#".
Використання методу, який повертає логічне значення
Використовуйте оператор
//примітки в рядку, щоб прокоментувати весь код із попереднього кроку.Введіть наведений нижче код у редактор коду Visual Studio.
string pangram = "The quick brown fox jumps over the lazy dog."; Console.WriteLine(pangram.Contains("fox")); Console.WriteLine(pangram.Contains("cow"));Збережіть кодовий файл, а потім за допомогою коду Visual Studio створіть і запустіть код.
Ви побачите наведений нижче результат.
True False
Що таке логічне заперечення?
Термін "Логічне заперечення" посилається на оператора !уніарного заперечення . Деякі користувачі називають цього оператора оператором "не оператор". Коли ви розміщуєте ! оператор перед умовним виразом (або будь-яким кодом, який обчислюється в будь-якому true або false), це змушує ваш код скасувати його оцінку операнда. Коли застосовується логічне заперечення, обчислення повертає true , якщо операнд обчислюється до false , і false , якщо операнд обчислюється як true.
Ось приклад, який може допомогти вам побачити зв'язок між цими ідеями. Наведені нижче два рядки коду дають однаковий результат. Другий рядок компактніший.
// These two lines of code will create the same output
Console.WriteLine(pangram.Contains("fox") == false);
Console.WriteLine(!pangram.Contains("fox"));
Використання оператора логічного заперечення
Використовуйте оператор
//примітки в рядку, щоб прокоментувати весь код із попереднього кроку.Введіть наведений нижче код у редактор коду Visual Studio.
string pangram = "The quick brown fox jumps over the lazy dog."; Console.WriteLine(!pangram.Contains("fox")); Console.WriteLine(!pangram.Contains("cow"));Збережіть кодовий файл, а потім за допомогою коду Visual Studio створіть і запустіть код.
Ви побачите наведений нижче результат.
False True
Оператор нерівності та логічне заперечення
Оператор != нерівності включає ! символ, але не слід плутати з логічним запереченням. Оператор нерівності повертається true , якщо його операнди не рівні, і повертається false , якщо операнди рівні. Для операндів вбудованих типів вираз x != y дає такий самий результат, як і вираз !(x == y) (приклад логічного заперечення).
Наведений нижче зразок коду демонструє використання != оператора:
int a = 7;
int b = 6;
Console.WriteLine(a != b); // output: True
string s1 = "Hello";
string s2 = "Hello";
Console.WriteLine(s1 != s2); // output: False
Повторити введення
Ось основні виноси, які ви дізналися про оцінку логічних виразів до цих пір:
- Існує багато різних типів виразів, які обчислюються для або
truefalse. - Оцініть рівність за
==допомогою оператора. - Оцінюючи рівність рядків, потрібно враховувати ймовірність того, що рядки мають різний регістр і пробіли на початку або в кінці. Залежно від ситуації використовуйте
ToLower()методи абоToUpper()допоміжні методи та допоміжнийTrim()метод, щоб покращити ймовірність того, що два рядки рівні. - Оцініть нерівність за
!=допомогою оператора. - Обчислити більше, менше та схожі операції за допомогою операторів порівняння, таких як
>,<,>=і<=. - Якщо метод повертає bool, його можна використовувати як логічний вираз.
- Використовуйте оператор
!логічного заперечення, щоб обчислити протилежність заданому виразу.
Перевірте свої знання
Зворотний зв’язок
Чи була ця сторінка корисна?
Ні
Потрібна допомога із цією темою?
Хочете скористатися Ask Learn, щоб отримати пояснення чи інструкції із цієї теми?