Exerciții - Evaluarea unei expresii
- 11 minute
Logica de decizie este utilizată pentru a stabili căi alternative prin cod, unde decizia privind calea de urmat se bazează pe evaluarea unei expresii. De exemplu, puteți scrie un cod care execută una dintre cele două căi pe baza intrării unui utilizator. Dacă utilizatorul introduce litera "a", codul dvs. va executa un bloc de cod. Dacă introduce litera "b", codul dvs. va executa un alt bloc de cod. În acest exemplu, controlați calea de execuție pe baza valorii atribuite unui șir. Codul selectează o cale de execuție bazată pe o expresie, modul în care este evaluată expresia și logica subiacentă utilizată pentru a defini căile.
Examinarea modului de construire și evaluare a unei expresii este un loc bun pentru a începe.
Ce este o expresie?
O expresie este orice combinație de valori (literală sau variabilă), operatori și metode care returnează o singură valoare. O instrucțiune este o instrucțiune completă în C#, iar instrucțiunile alcătuiesc una sau mai multe expresii. De exemplu, următoarea ifinstrucțiune conține o singură expresie care returnează o singură valoare:
if (myName == "Luiz")
Poate că v-ați gândit că valoarea returnată de o expresie ar fi un număr sau poate un șir. Este adevărat că dezvoltatorii de aplicații utilizează tipuri diferite de expresii în scopuri diferite. În acest caz, atunci când dezvoltați o if instrucțiune de selecție, veți utiliza o expresie care returnează sau truefalse . Dezvoltatorii se referă la acest tip de expresie ca o expresie booleană. Atunci când codul include o expresie booleană, valoarea returnată este întotdeauna o singură true valoare sau false o valoare.
Expresiile booleene sunt importante, deoarece codul dvs. poate utiliza aceste expresii pentru a decide ce bloc de cod să se execute.
Există mai multe tipuri diferite de operatori pe care le puteți utiliza într-o expresie booleană. De exemplu, instrucțiunea de if mai sus utilizează operatorul == egalității pentru a verifica dacă o variabilă șir este atribuită unei anumite valori. Operatorul pe care îl alegeți va depinde de căile de cod disponibile, de condițiile asociate căilor și de logica aplicației subiacente.
Evaluarea egalității și inegalității
Una dintre cele mai comune evaluări de cod este o verificare pentru a vedea dacă două valori sunt egale. Atunci când verificați egalitatea, veți găsi operatorul == egalității între cele două valori verificate. Dacă valorile din ambele părți ale operatorului de egalitate sunt echivalente, expresia va returna true. În caz contrar, va returna false.
În schimb, poate fi necesar să verificați dacă două valori nu sunt egale. Pentru a verifica inegalitatea, veți utiliza operatorul != de inegalitate între cele două valori.
Poate vă întrebați de ce aveți nevoie atât de operatori de egalitate, cât și de inegalitate. Motivul va deveni mai clar pe măsură ce aflați cum să creați instrucțiuni de ramificare și să începeți să scrieți cod real din lume. Doi operatori care efectuează activități opuse vă permit să fiți mai expresiv și mai compact.
Acum este timpul să pregătiți mediul de codificare și să începeți să scrieți cod care evaluează expresii booleene.
Pregătește-ți mediul de codare
Acest modul include activități practice care vă ghidează în procesul de creare și de rulare a codului demonstrativ. Sunteți încurajat să finalizați aceste activități utilizând Visual Studio Code ca mediu de dezvoltare. Utilizarea Codului Visual Studio pentru aceste activități vă va ajuta să deveniți mai confortabil să scrieți și să rulați cod într-un mediu de dezvoltator utilizat de profesioniști din întreaga lume.
Deschideți Visual Studio Code.
Puteți utiliza meniul Start Windows (sau resursa echivalentă pentru un alt sistem de operare) pentru a deschide Visual Studio Code.
În meniul Fișier Visual Studio Code, selectați Deschidere folder.
În caseta de dialog Deschidere folder, navigați la folderul Desktop Windows.
Dacă aveți o altă locație de folder în care păstrați proiectele de cod, puteți utiliza acea locație de folder în schimb. Pentru această instruire, lucrul important este să aveți o locație ușor de găsit și de reținut.
În caseta de dialog Deschidere folder, selectați Selectare folder.
Dacă vedeți o casetă de dialog de securitate care vă întreabă dacă aveți încredere în autori, selectați Da.
În meniul Terminal Visual Studio Code, selectați Terminal nou .
Observați că o linie de comandă din panoul Terminal afișează calea folderului pentru folderul curent. De exemplu:
C:\Users\someuser\Desktop>Notă
Dacă lucrați pe propriul PC, nu într-un sandbox sau într-un mediu găzduit și ați finalizat alte module Microsoft Learn din această serie C#, este posibil să fi creat deja un folder de proiect pentru eșantioane de cod. În acest caz, puteți trece peste pasul următor, care este utilizat pentru a crea o aplicație consolă în folderul TestProject.
În linia de comandă Terminal, pentru a crea o aplicație consolă nouă într-un folder specificat, introduceți următoarea solicitare:
dotnet new console -o ./CsharpProjects/TestProjectAceastă comandă .NET CLI utilizează un șablon de program .NET pentru a crea un nou proiect de aplicație consolă C# în locația de folder specificată. Comanda creează folderele CsharpProjects și TestProject pentru dvs. și utilizează TestProject ca nume al fișierului
.csproj.Dacă se afișează un mesaj care vă spune că fișierele există deja, continuați cu pașii următori. Veți reutiliza fișierele de proiect existente.
În vizualizarea EXPLORER, extindeți folderul CsharpProjects .
Ar trebui să vedeți folderul TestProject și două fișiere, un fișier program C# denumit Program.cs și un fișier de proiect C# numit TestProject.csproj.
În meniul Fișier Visual Studio Code, selectați Deschidere folder.
În caseta de dialog Deschidere folder , selectați folderul CsharpProjects , apoi selectați Selectare folder.
În vizualizarea EXPLORER, extindeți folderul TestProject, apoi selectați Program.cs.
Ștergeți liniile de cod existente.
Veți utiliza acest proiect de consolă C# pentru a crea, a construi și a rula eșantioane de cod în timpul acestui modul.
Închideți panoul Terminal.
Utilizarea operatorului egalității
Asigurați-vă că aveți visual Studio Code deschis și Program.cs afișat în panoul Editor.
Notă
Program.cs ar trebui să fie goală. Dacă nu este, selectați și ștergeți toate liniile de cod.
Tastați următorul cod în Visual Studio Code Editor.
Console.WriteLine("a" == "a"); Console.WriteLine("a" == "A"); Console.WriteLine(1 == 2); string myValue = "a"; Console.WriteLine(myValue == "a");În meniul Fișier Visual Studio Code, selectați Salvare.
Fișierul Program.cs trebuie salvat înainte de construirea sau rularea codului.
În panoul EXPLORER, pentru a deschide un Terminal la locația folderului TestProject, faceți clic dreapta pe TestProject, apoi selectați Deschidere în terminal integrat.
Se va deschide un panou terminal. Terminalul ar trebui să includă o linie de comandă care arată că Terminal este deschis în locația folderului TestProject.
În linia de comandă Terminal, pentru a rula codul, tastați run dotnet apoi apăsați pe Enter.
Notă
Dacă vedeți un mesaj care spune "Nu s-a găsit un proiect de rulat", asigurați-vă că linia de comandă Terminal afișează locația așteptată a folderului TestProject. De exemplu:
C:\Users\someuser\Desktop\csharpprojects\TestProject>Ar trebui să vedeți următoarea ieșire.
True False False True
Îmbunătățirea verificării egalității de șiruri utilizând metodele de ajutor încorporate ale șirului
S-ar putea să fiți surprins că ieșirile Console.WriteLine("a" == "A");de linie false . Atunci când comparați șiruri, contează cazul.
De asemenea, luați în considerare această linie de cod:
Console.WriteLine("a" == "a ");
Aici ați adăugat un caracter spațiu la sfârșitul șirului. Această expresie va ieși false, de asemenea, .
În unele cazuri, un caracter spațiu înainte sau după text poate fi perfect acceptabil. Cu toate acestea, dacă trebuie să acceptați o potrivire care nu este exactă, puteți să "masați" datele mai întâi. "Massaging" datele înseamnă că efectuați o curățare înainte de a efectua o comparație pentru egalitate.
De exemplu, luați în considerare cazul atunci când colectați intrări de utilizator într-o buclă. După ce se introduce fiecare valoare, puteți oferi utilizatorului o solicitare de a determina dacă dorește să continue, cum Do you want to continue (Y/N)?ar fi . Dacă utilizatorul dorește să continue, probabil va introduce y sau Y. Veți dori ca codul să interpreteze ambele valori în mod egal, chiar dacă y nu este echivalent cu Y.
Înainte de a verifica două valori șir pentru egalitate, mai ales atunci când una sau ambele valori au fost introduse de un utilizator, ar trebui să:
- Asigurați-vă că ambele șiruri sunt toate literele mari sau mici utilizând metoda sau
ToUpper()helper pentruToLower()orice valoare de șir. - Eliminați toate spațiile necompletate de la început sau de la sfârșit, utilizând
Trim()metoda helper pentru orice valoare de șir.
Puteți îmbunătăți verificarea egalității anterioare prin înlănțuirea acestor două metode de ajutor pentru ambele valori, așa cum se arată în următoarea listare de cod:
Înlocuiți codul din Visual Studio Code Editor cu următorul cod:
string value1 = " a"; string value2 = "A "; Console.WriteLine(value1.Trim().ToLower() == value2.Trim().ToLower());Salvați fișierul de cod, apoi utilizați Visual Studio Code pentru a rula codul.
Observați că, atunci când rulați codul de data aceasta, se afișează True.
Utilizați operatorul de inegalitate
Utilizați operatorul
//de comentarii de linie pentru a comenta întregul cod de la pasul anterior.Tastați următorul cod în Visual Studio Code Editor.
Console.WriteLine("a" != "a"); Console.WriteLine("a" != "A"); Console.WriteLine(1 != 2); string myValue = "a"; Console.WriteLine(myValue != "a");Salvați fișierul de cod, apoi utilizați Visual Studio Code pentru a rula codul.
Ar trebui să vedeți următoarea ieșire.
False True True False
Așa cum vă așteptați, rezultatul atunci când se utilizează operatorul inegalității este opusul a ceea ce ați văzut atunci când utilizați operatorul de egalitate. Aceasta înseamnă că și codul se va ramifica în maniera opusă, ceea ce poate fi exact ceea ce doriți.
Evaluarea comparațiilor
Atunci când lucrați cu tipuri de date numerice, se recomandă să determinați dacă o valoare este mai mare sau mai mică decât o altă valoare. Utilizați următorii operatori pentru a efectua aceste tipuri de comparații:
- Mai mare decât
> - Mai puţin
< - Mai mare sau egal cu
>= - Mai mic sau egal cu
<=
Desigur, operatorii == pe != care i-ați utilizat pentru a compara valorile șir de mai sus vor funcționa și atunci când comparați tipuri de date numerice.
Utilizarea operatorilor de comparație
Utilizați operatorul
//de comentarii de linie pentru a comenta întregul cod din activitatea anterioară.Tastați următorul cod în Visual Studio Code Editor.
Console.WriteLine(1 > 2); Console.WriteLine(1 < 2); Console.WriteLine(1 >= 1); Console.WriteLine(1 <= 1);Salvați fișierul de cod, apoi utilizați Visual Studio Code pentru a construi și a rula codul.
Ar trebui să vedeți următoarea ieșire:
False True True True
Metode care returnează o valoare booleană
Unele metode returnează o valoare booleană (true sau false). În următorul exercițiu, veți utiliza o metodă predefinită a String clasei pentru a determina dacă un șir mai mare conține sau nu un anumit cuvânt sau o expresie semnificativă pentru aplicația dvs.
Notă
Unele tipuri de date au metode care efectuează activități utilitare utile. Tipul String de date are multe dintre acestea. Mai multe returnează o valoare booleană, inclusiv Contains(), StartsWith()și EndsWith(). Puteți afla mai multe despre acestea în modulul Microsoft Learn "Manipularea datelor alfanumerice utilizând metode de clasă șir în C#".
Utilizarea unei metode care returnează o valoare booleană
Utilizați operatorul
//de comentarii de linie pentru a comenta întregul cod de la pasul anterior.Tastați următorul cod în Visual Studio Code Editor.
string pangram = "The quick brown fox jumps over the lazy dog."; Console.WriteLine(pangram.Contains("fox")); Console.WriteLine(pangram.Contains("cow"));Salvați fișierul de cod, apoi utilizați Visual Studio Code pentru a construi și a rula codul.
Ar trebui să vedeți următoarea ieșire.
True False
Ce este negația logică?
Termenul "Negația logică" se referă la operatorul !negation unar . Unele persoane numesc acest operator "nu operator". Atunci când plasați ! operatorul înaintea unei expresii condiționale (sau a oricărui cod care este evaluat la oricare true dintre acestea sau false), acesta forțează codul să inverseze evaluarea operandului. Atunci când se aplică negația logică, evaluarea produce true , dacă operandul se evaluează la false și false , dacă operandul se evaluează la true.
Iată un exemplu care vă poate ajuta să vedeți conexiunea dintre aceste idei. Următoarele două linii de cod produc același rezultat. A doua linie este mai compactă.
// These two lines of code will create the same output
Console.WriteLine(pangram.Contains("fox") == false);
Console.WriteLine(!pangram.Contains("fox"));
Utilizarea operatorului logic Negation
Utilizați operatorul
//de comentarii de linie pentru a comenta întregul cod de la pasul anterior.Tastați următorul cod în Visual Studio Code Editor.
string pangram = "The quick brown fox jumps over the lazy dog."; Console.WriteLine(!pangram.Contains("fox")); Console.WriteLine(!pangram.Contains("cow"));Salvați fișierul de cod, apoi utilizați Visual Studio Code pentru a construi și a rula codul.
Ar trebui să vedeți următoarea ieșire.
False True
Operator inegalitate versus negația logică
Operatorul != de inegalitate include un ! caracter, dar nu trebuie confundat cu negația logică. Operatorul inegalității returnează true dacă operanzii săi nu sunt egali și returnează false dacă operanzii sunt egali. Pentru operanzii tipurilor predefinite, expresia x != y produce același rezultat ca expresia !(x == y) (un exemplu de negație logică).
Următorul exemplu de cod demonstrează utilizarea operatorului != :
int a = 7;
int b = 6;
Console.WriteLine(a != b); // output: True
string s1 = "Hello";
string s2 = "Hello";
Console.WriteLine(s1 != s2); // output: False
Recapitula
Iată principalele exemple pe care le-ați învățat despre evaluarea expresiilor booleene până acum:
- Există multe tipuri diferite de expresii care se evaluează la una
truesaufalsela . - Evaluați egalitatea utilizând
==operatorul. - Evaluarea egalității de șiruri necesită să luați în considerare posibilitatea ca șirurile să aibă spații diferite pentru litere mari și mici sau la sfârșit. În funcție de situația dvs., utilizați
ToLower()metodele de ajutor sauToUpper()deTrim()ajutor și metoda de ajutor pentru a îmbunătăți probabilitatea ca două șiruri să fie egale. - Evaluați inegalitatea utilizând
!=operatorul. - Evaluați mai mult decât, mai mic și operațiuni similare utilizând operatori de comparație, cum ar fi
>,<>=, și<=. - Dacă o metodă returnează o valoare bool, aceasta poate fi utilizată ca expresie booleană.
- Utilizați operatorul
!logic de negație pentru a evalua opusul unei expresii date.
Verificați-vă cunoștințele
Feedback
Această pagină a fost utilă?
Nu
Aveți nevoie de ajutor cu acest subiect?
Doriți să încercați să utilizați Întrebați Microsoft Learn pentru a clarifica sau primi îndrumări privind acest subiect?