C# IF-, Switch-, For- og While-løkkesætninger [Eksempler]

⚡ Smart opsummering

C#-betingede sætninger og løkker styrer et programs flow ved at køre eller gentage kodeblokke baseret på logik. If-, switch-, while- og for-sætningerne lader et program træffe beslutninger og iterere effektivt.

  • 🔀 Flowkontrol: Betingede sætninger ændrer rækkefølgen af ​​udførelse, så et program kun kører de sætninger, der matcher dets logik.
  • ❓ Hvis-sætning: En if-sætning evaluerer et boolsk udtryk og kører én blok, når det er sandt, og en anden, når det er falsk.
  • 🔢 Switch-erklæring: Switch-sætningen sammenligner én værdi med flere case-labels og bruger break til at stoppe, når der findes et match.
  • 🔁 Mens loop: While-løkken gentager en blok af udsagn, mens dens betingelse forbliver sand, hvilket passer til et ukendt antal iterationer.
  • 🔄 Til løkke: For-løkken initialiserer, tester og forøger en tæller på én linje, ideelt når antallet af gentagelser er kendt.
  • 🤖 AI assistance: GitHub Copilot udarbejder if-, switch- og loop-logik, mens ML.NET genbruger de samme betingelser til at forgrene maskinlæringspipelines.

C# betingede sætninger

Flowkontrol og betingede erklæringer

Flowkontrol og betingede erklæringer er tilgængelige i ethvert programmeringssprog for at ændre flowet af et program.

For eksempel, hvis nogen kun ønsker at udføre et bestemt sæt af udsagn baseret på en bestemt logik, vil flowkontrol og betingede udsagn være nyttige.

Du vil få en bedre forståelse, når vi gennemgår de forskellige udsagn, som er tilgængelige i C#.

Bemærk venligst, at al koden nedenfor er lavet til filen Program.cs.

1) Hvis erklæring

If-sætningen bruges til at evaluere et boolsk udtryk, før et sæt sætninger udføres. Hvis et udtryk evalueres til sandt, vil det køre ét sæt sætninger, ellers vil det køre et andet sæt sætninger.

I vores eksempel nedenfor foretages en sammenligning for en variabel kaldet værdi. Hvis variablens værdi er mindre end 10, vil den køre én sætning, eller den vil køre en anden sætning.

Hvis udsagn

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program 
 {
  static void Main(string[] args) 
  {
   Int32 value = 11;
   
   if(value<10)
   {
    Console.WriteLine("Value is less than 10");
   }
   else
   {
    Console.WriteLine("Value is greater than 10");
   }
    Console.ReadKey();
  }
 }
}

Code Forklaring:-

  1. Vi definerer først en variabel kaldet værdi og sætter den til værdien 11.
  2. Vi bruger derefter 'if'-sætningen til at kontrollere, om værdien er mindre end 10 af variablen. Resultatet vil enten være sandt eller falsk.
  3. Hvis betingelsen if evalueres til sand, sender vi meddelelsen "Værdien er mindre end 10" til konsollen.
  4. Hvis if-tilstanden evalueres til falsk, sender vi meddelelsen "Værdien er større end 10" til konsollen.

Hvis ovenstående kode er indtastet korrekt, og programmet udføres korrekt, vil følgende output blive vist.

Output:

Hvis udsagn

Vi kan tydeligt se, at 'hvis'-erklæringen blev vurderet til falsk. Derfor blev meddelelsen "Værdi er større end 10" sendt til konsollen.

2) Skift erklæring

Switch-sætningen er en forbedring af 'if'-sætningen. Hvis du har flere udtryk, der skal evalueres i ét skud, bliver det et problem at skrive flere 'hvis'-udsagn.

Switch-sætningen bruges til at evaluere et udtryk og køre forskellige sætninger baseret på resultatet af udtrykket. Hvis en betingelse ikke evalueres til sand, vil switch-sætningen derefter flytte til den næste betingelse og så videre.

Lad os se, hvordan dette fungerer med eksemplet nedenfor. Her sammenligner vi igen værdien af ​​en variabel kaldet 'værdi'. Vi tjekker derefter, om værdien er lig med 1, 2 eller noget helt andet.

Skift erklæring

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program
 {
  static void Main(string[] args) 
  {
   Int32 value=11;
   switch(value) 
   {
     case 1: Console.WriteLine("Value is 1");	
     break;
     case 2: Console.WriteLine("Value is 2");
     break;
     default: Console.WriteLine("value is different");
     break;
   }
  }
 }
}

Code Forklaring:-

  1. Vi definerer først en variabel kaldet 'værdi' og sætter den til værdien 11.
  2. Vi bruger derefter 'switch'-sætningen til at kontrollere værdien af ​​variablen 'værdi'.
  3. Sagsudtalelser bruges til at stille forskellige betingelser. Baseret på betingelserne kan et sæt sætninger udføres. En switch-sætning kan have flere sagsbetingelser. Den første case-sætning kontrollerer, om værdien af ​​variablen er lig med 1.
  4. Hvis den første case-sætning er sand, skrives meddelelsen "Værdi er 1" til konsollen.
  5. Pause-sætningen bruges til at bryde fra hele switch-sætningen, når en betingelse er sand.
  6. Standardbetingelsen er en speciel betingelse. Dette betyder blot, at hvis intet kasusudtryk evalueres til sandt, så kør sættet af sætninger for standardbetingelsen.

Hvis ovenstående kode er indtastet korrekt, og programmet udføres korrekt, vil følgende output blive vist. Outputtet udskriver standardværdien "Værdi er anderledes", da ingen betingelse er opfyldt.

Output:

Skift erklæring

3) Mens loop

While-løkken bruges til iterative formål. Antag, at hvis du vil gentage et bestemt sæt udsagn et bestemt antal gange, så bruges mens loop.

I vores eksempel nedenfor bruger vi while-sætningen til at vise værdien af ​​en variabel 'i'. While-sætningen bruges til at vise værdien 3 gange.

Mens løkken

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program
 {
  static void Main(string[] args) 
  {
   Int32 value=3,i=0;
   
   while(i<value)
   {
    Console.WriteLine(i);
    i=i+1;
   }
    Console.ReadKey(); 
  }
 }
}

Code Forklaring:-

  1. To heltal variabler er defineret, hvor den ene er værdi og den anden er 'i'. Værdivariablen bruges som den øvre grænse, til hvilken vi skal iterere vores while-sætning. Og 'i' er den variabel, som vil blive behandlet under iterationen.
  2. I while-sætningen kontrolleres værdien af ​​'i' konstant mod den øvre grænse.
  3. Her viser vi værdien af ​​'i' til konsollen. Vi øger også værdien af ​​'i'.

Hvis ovenstående kode er indtastet korrekt, og programmet udføres korrekt, vil følgende output blive vist.

Output:

Mens løkken

Her kan du se, at while-sætningen udføres 3 gange og øges på samme tid. Og hver gang viste den den aktuelle værdi af variablen 'i'.

4) Til sløjfe

'For'-løkken bruges også til iterative formål. Antag, at hvis du vil gentage et bestemt sæt udsagn et bestemt antal gange, så bruges for-løkken.

I vores eksempel nedenfor bruger vi 'for'-sætningen til at vise værdien af ​​en variabel 'i'. 'for'-sætningen bruges til at vise værdien 3 gange.

Til sløjfe

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DemoApplication
{
 class Program
 {
  static void Main(string[] args) 
  {
   for(Int32 i=0;i<3;i++)
   {
    Console.WriteLine(i);
   }
    Console.ReadKey(); 
  
  }
 }
}

Code Forklaring:-

  1. Nøgleordet 'for' bruges til at starte sætningen 'for loop'.
  2. I 'for loop' definerer vi 3 ting. Den første er at initialisere værdien af ​​en variabel, som vil blive brugt i 'for-løkken'.
  3. Den anden er at sammenligne værdien af ​​'i'et' med en øvre grænse. I vores tilfælde er den øvre grænse værdien af ​​3 (i<3).
  4. Til sidst øger vi værdien af ​​'i' tilsvarende.
  5. Her viser vi værdien af ​​'i' til konsollen.

Hvis ovenstående kode er indtastet korrekt, og programmet udføres korrekt, vil følgende output blive vist.

Output:

Til sløjfe

Her kan du se, at 'for'-sætningen udføres 3 gange. Og hver gang viste den den aktuelle værdi af variablen 'i'.

Ofte Stillede Spørgsmål

If-sætningen håndterer intervaller og komplekse boolske betingelser, mens switch-sætningen sammenligner én værdi med flere faste tilfælde. Switch er renere for mange diskrete værdier, hvorimod if-else passer til intervaller, flere variabler og logiske operatorer.

En indlejret if-sætning placerer en if-sætning inden i en anden, så den indre betingelse kun testes, når den ydre betingelse er sand. Det lader et program kontrollere flere afhængige betingelser, selvom dyb indlejring reducerer læsbarheden.

En while-løkke tester sin betingelse før hver iteration, så den kan køre nul gange. En do-while-løkke tester betingelsen efter brødteksten, så den altid kører mindst én gang, hvilket passer til menuer og inputvalidering.

`break`-sætningen afslutter en løkke eller switch med det samme, mens `continue`-sætningen springer resten af ​​den aktuelle iteration over og går videre til den næste. Begge ændrer flowet, men kun `break` afslutter løkken helt.

Den ternære operator ?: er en kompakt form af if-else. Den evaluerer en betingelse, returnerer den første værdi, når betingelsen er sand, og den anden værdi, når den er falsk, hvilket giver en præcis tildeling på én linje.

En foreach-løkke itererer over alle elementer i en samling, såsom et array eller en liste, uden behov for et indeks eller en tæller. Den læser samlingen sikkert og forhindrer almindelige fejl, der går uden for rækkevidde, og som er for mange.

Ja. GitHub Copilot foreslår if, switch, while og for blokke fra en kommentar eller et metodenavn i Visual Studio, og VS Code. RevSe hvert forslag for korrekte betingelser og løkkegrænser, da Copilot kan introducere fejl, der er forskellig fra én til én.

ML.NET-pipelines bruger C#-betingede sætninger til at forgrene sig på funktionsværdier og løkker for at iterere over træningsrækker. De samme if-, switch- og for-logik forbereder data og ruter forudsigelser, keeping en stærkt typebestemt maskinlæringsworkflow.

Opsummer dette indlæg med: