Øvelse – implementer den betingede operator
- 7 minutter
Lad os antage, at du hurtigt skal afgøre, om en kundes køb er berettiget til en kampagnerabat. Oplysningerne for hævningen angiver, at når en købsværdi er større end 1000 euro, er købet berettiget til en rabat på 100 euro. Hvis købsbeløbet er 1000 euro eller mindre, er købet berettiget til en rabat på 50 euro.
Selvom du helt sikkert kan bruge forgreningskonstruktøren if ... elseif ... else til at udtrykke denne forretningsregel, kan det være et bedre valg at bruge den betingede operatør til at evaluere berettigelsen til kampagnerabatten. Den betingede operator bruger et kompakt format, der gemmer nogle få kodelinjer og muligvis gør hensigten med koden tydeligere.
Hvad er den betingede operator?
Den betingede operator?: evaluerer et boolesk udtryk og returnerer et af to resultater, afhængigt af om det booleske udtryk evalueres til true eller false. Den betingede operator kaldes ofte for den ternære betingede operator.
Her er den grundlæggende formular:
<evaluate this condition> ? <if condition is true, return this value> : <if condition is false, return this value>
Brug et øjeblik på at overveje, hvordan du vil anvende den betingede operatør på kampagnerabatscenariet. Dit mål er at vise en meddelelse til kunden, der viser deres rabatprocent. Beløbet for deres rabat vil være baseret på, om de har brugt mere end 1000 euro på deres køb.
Tilføj kode, der bruger en betinget operator
Sørg for, at du har åbnet en tom Program.cs fil i Visual Studio Code. Hvis det er nødvendigt, skal du åbne Visual Studio Code og derefter udføre følgende trin for at forberede en Program.cs fil i Editor:
- Vælg Åbn mappe i menuen Filer.
- Brug dialogboksen Åbn mappe til at navigere til og derefter åbne mappen CsharpProjects .
- Vælg Program.cs i panelet Visual Studio Code EXPLORER.
- I menuen Visual Studio Code Selection skal du vælge Select All og derefter trykke på Delete.
Skriv følgende kode i Visual Studio Code Editor.
int saleAmount = 1001; int discount = saleAmount > 1000 ? 100 : 50; Console.WriteLine($"Discount: {discount}");Vælg Gemi menuen Visual Studio Code File .
Den Program.cs fil skal gemmes, før du kan oprette eller køre koden.
Højreklik på TestProjecti panelet EXPLORER for at åbne en Terminal på mappen TestProject, og vælg derefter Åbn i integreret terminal.
Et terminalpanel, der viser en kommandoprompt, skal nu være åbent. Kommandoprompten skal vise mappestien for din TestProject-mappeplacering.
I kommandoprompten Terminal skal du skrive dotnet run og derefter trykke på Enter for at køre din kode.
Når du kører koden, får du vist følgende output:
Discount: 100
Brug den indbyggede betingede operator
Du kan komprimere denne kode endnu mere ved at fjerne den midlertidige variabel discount.
Opdater din kode i Visual Studio Code Editor på følgende måde:
int saleAmount = 1001; // int discount = saleAmount > 1000 ? 100 : 50; Console.WriteLine($"Discount: {(saleAmount > 1000 ? 100 : 50)}");Vælg Gemi menuen Visual Studio Code File .
I kommandoprompten Terminal skal du skrive dotnet run og derefter trykke på Enter for at køre din kode.
Bemærk, at outputtet er det samme.
Brug et minut på at undersøge den opdaterede
Console.WriteLine()sætning.Bemærk, at det er nødvendigt at ombryde hele den betingede operatorsætning i parenteser. Parenteserne sikrer, at kørselstidspunktet forstår din hensigt, som er at vise det betingede resultat i stedet for resultatet af evalueringen af betingelsen (saleAmount > 1000).
Seddel
Selvom dette eksempel er kompakt og viser, hvad der er muligt, er det lidt sværere at læse. Det er ikke altid en god idé at kombinere kodelinjer, især når det påvirker den overordnede læsbarhed af din kode negativt. Dette er ofte et subjektivt domskald.
Resumé
Du skal huske følgende fakta om den betingede operator:
- Du kan bruge den betingede operator til at reducere størrelsen på din kode, men du skal sikre, at den resulterende kode er letlæselig.
- Du kan bruge den betingede operator, når du har brug for at returnere en værdi, der er baseret på en binær betingelse. Din kode returnerer den første indstilling, når betingelsen evalueres til sand, og den returnerer den anden indstilling, når betingelsen evalueres til falsk.
Tjek din viden
Feedback
Var denne side nyttig?
No
Har du brug for hjælp til dette emne?
Vil du prøve at bruge Ask Learn til at tydeliggøre eller guide dig gennem dette emne?