C# IF-, Switch-, For- och While-loopsatser [Exempel]

⚡ Smart sammanfattning

C# villkorliga satser och loopar styr flödet i ett program genom att köra eller upprepa kodblock baserat på logik. if-, switch-, while- och for-satserna låter ett program fatta beslut och iterera effektivt.

  • 🔀 Flödeskontroll: Villkorliga satser ändrar exekveringsordningen så att ett program bara kör de satser som matchar dess logik.
  • Om-sats: If-satsen utvärderar ett booleskt uttryck och kör ett block när det är sant och ett annat när det är falskt.
  • 🔢 Switch-uttryck: Switch-satsen jämför ett värde mot flera case-etiketter och använder break för att stoppa när en matchning hittas.
  • 🔁 While loop: While-slingan upprepar ett block med uttalanden medan dess villkor förblir sant, vilket passar ett okänt antal iterationer.
  • 🔄 För loop: For-loopen initierar, testar och ökar en räknare på en rad, idealiskt när antalet repetitioner är känt.
  • 🤖 AI-hjälp: GitHub Copilot utarbetar if-, switch- och loop-logik, medan ML.NET återanvänder samma villkor för att förgrena maskininlärningspipelines.

C# villkorliga satser

Flödeskontroll och villkorliga uttalanden

Flödeskontroll och villkorliga uttalanden är tillgängliga i alla programmeringsspråk för att ändra flödet i ett program.

Om någon till exempel bara vill exekvera en viss uppsättning programsatser baserat på en viss logik, kommer flödeskontroll och villkorliga programsatser att vara användbara.

Du kommer att få en bättre förståelse när vi går igenom de olika påståenden som finns tillgängliga i C#.

Observera att all kod nedan görs till filen Program.cs.

1) Om uttalande

If-satsen används för att utvärdera ett booleskt uttryck innan en uppsättning satser körs. Om ett uttryck utvärderas till sant, kommer det att köra en uppsättning satser, annars kommer det att köra en annan uppsättning satser.

I vårt exempel nedan görs en jämförelse för en variabel som heter värde. Om variabelns värde är mindre än 10, kommer den att köra en sats, eller så kommer den att köra en annan sats.

Om uttalande

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 Förklaring:-

  1. Vi definierar först en variabel som kallas värde och sätter den till värdet 11.
  2. Vi använder sedan 'if'-satsen för att kontrollera om värdet är mindre än 10 av variabeln. Resultatet blir antingen sant eller falskt.
  3. Om if-villkoret utvärderas till sant, skickar vi meddelandet "Värdet är mindre än 10" till konsolen.
  4. Om if-villkoret utvärderas till falskt, skickar vi meddelandet "Värdet är större än 10" till konsolen.

Om ovanstående kod matas in korrekt och programmet körs framgångsrikt, kommer följande utdata att visas.

Produktion:

Om uttalande

Vi kan tydligt se att "om"-påståendet utvärderades till falskt. Därför skickades meddelandet "Värdet är större än 10" till konsolen.

2) Byt uttalande

Switch-satsen är en förbättring av "if"-satsen. Om du har flera uttryck som måste utvärderas i en gång, blir det ett problem att skriva flera "om"-satser.

Switch-satsen används för att utvärdera ett uttryck och köra olika satser baserat på resultatet av uttrycket. Om ett villkor inte evalueras till sant, kommer switch-satsen att flyttas till nästa villkor och så vidare.

Låt oss se hur detta fungerar med exemplet nedan. Här jämför vi återigen värdet på en variabel som heter "värde". Vi kontrollerar sedan om värdet är lika med 1, 2 eller något helt annat.

Byt uttalande

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 Förklaring:-

  1. Vi definierar först en variabel som heter "värde" och sätter den till värdet 11.
  2. Vi använder sedan "switch"-satsen för att kontrollera värdet på variabeln "value".
  3. Fallutlåtanden används för att ställa olika villkor. Baserat på förutsättningarna kan en uppsättning satser exekveras. En switch-sats kan ha flera fallvillkor. Den första fallsatsen kontrollerar om variabelns värde är lika med 1.
  4. Om den första fallsatsen är sann, skrivs meddelandet "Värde är 1" till konsolen.
  5. Break-satsen används för att bryta från hela switch-satsen, när ett villkor är sant.
  6. Standardvillkoret är ett speciellt villkor. Detta betyder bara att om inget kasusuttryck evalueras till sant, kör sedan uppsättningen satser för standardvillkoret.

Om ovanstående kod matas in korrekt och programmet körs framgångsrikt, kommer följande utdata att visas. Utmatningen skriver ut standardvärdet "Värdet är annorlunda", eftersom inget villkor är uppfyllt.

Produktion:

Byt uttalande

3) While loop

While-slingan används för iterativa syften. Antag att om du vill upprepa en viss uppsättning satser ett visst antal gånger, så används medan loop.

I vårt exempel nedan använder vi while-satsen för att visa värdet på en variabel 'i'. While-satsen används för att visa värdet 3 gånger.

Medan slinga

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 Förklaring:-

  1. Två heltal variabler är definierade, en är värde och den andra är 'i'. Värdevariabeln används som den övre gränsen till vilken vi bör iterera vår while-sats. Och 'i' är variabeln som kommer att bearbetas under iterationen.
  2. I while-satsen kontrolleras värdet på 'i' hela tiden mot den övre gränsen.
  3. Här visar vi värdet på 'i' till konsolen. Vi ökar också värdet på 'i'.

Om ovanstående kod matas in korrekt och programmet körs framgångsrikt, kommer följande utdata att visas.

Produktion:

Medan slinga

Här kan du se att while-satsen exekveras 3 gånger och inkrementeras samtidigt. Och varje gång visade den det aktuella värdet för variabeln 'i'.

4) För slinga

'For'-loopen används också för iterativa ändamål. Anta att om du vill upprepa en viss uppsättning satser ett visst antal gånger, så används for-loopen.

I vårt exempel nedan använder vi 'for'-satsen för att visa värdet på en variabel 'i'. "för"-satsen används för att visa värdet 3 gånger.

För slinga

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 Förklaring:-

  1. Nyckelordet 'for' används för att starta uttalandet 'for loop'.
  2. I 'för loop' definierar vi 3 saker. Den första är att initiera värdet på en variabel, som kommer att användas i 'for-loopen'.
  3. Det andra är att jämföra värdet av 'i' med en övre gräns. I vårt fall är den övre gränsen värdet 3 (i<3).
  4. Slutligen ökar vi värdet på 'i' i enlighet med detta.
  5. Här visar vi värdet på 'i' till konsolen.

Om ovanstående kod matas in korrekt och programmet körs framgångsrikt, kommer följande utdata att visas.

Produktion:

För slinga

Här kan du se att 'for'-satsen exekveras 3 gånger. Och varje gång visade den det aktuella värdet för variabeln 'i'.

Vanliga frågor

`if`-satsen hanterar intervall och komplexa booleska villkor, medan `switch`-satsen jämför ett värde mot flera fasta etiketter med olika fall/gemensamma förhållanden. `Switch` är renare för många diskreta värden, medan `if-else` passar för intervall, flera variabler och logiska operatorer.

Ett kapslat if-uttryck placerar ett if-uttryck inuti ett annat, så det inre villkoret testas endast när det yttre villkoret är sant. Det låter ett program kontrollera flera beroende villkor, även om djup kapsling minskar läsbarheten.

En while-loop testar sitt villkor före varje iteration, så den kan köras noll gånger. En do-while-loop testar villkoret efter brödtexten, så den körs alltid minst en gång, vilket passar menyer och inmatningsvalidering.

break-satsen avslutar en loop eller switch omedelbart, medan continue-satsen hoppar över resten av den aktuella iterationen och går vidare till nästa. Båda ändrar flödet, men det är bara break som avslutar loopen helt.

Den ternära operatorn ?: är en kompakt form av if-else. Den utvärderar ett villkor, returnerar det första värdet när villkoret är sant och det andra värdet när det är falskt, vilket ger en koncis enradsuppgift.

En foreach-loop itererar över varje element i en samling, såsom en array eller lista, utan att behöva ett index eller en räknare. Den läser samlingen säkert och förhindrar vanliga fel som går utanför intervallet och som inte överskrider intervallet.

Ja. GitHub Copilot föreslår if-, switch-, while- och for-block från en kommentar eller ett metodnamn i Visual Studio och VS Code. RevVisa varje förslag för korrekta villkor och loopgränser, eftersom Copilot kan introducera fel som är felaktiga för varje.

ML.NET-pipelines använder C#-villkorssatser för att förgrena sig på funktionsvärden och loopar för att iterera över träningsrader. Samma if, switch och for logic förbereder data och routar förutsägelser, keeping ett starkt typat arbetsflöde för maskininlärning.

Sammanfatta detta inlägg med: