C# IF, Switch, For, While ciklusutasítások [Példák]

⚡ Okos összefoglaló

A C# feltételes utasítások és ciklusok a programfolyamatot logikailag meghatározott kódblokkok futtatásával vagy ismétlésével vezérlik. Az if, switch, while és for utasítások lehetővé teszik a programok számára a döntéshozatalt és a hatékony iterációt.

  • 🔀 Áramlásszabályozás: A feltételes utasítások megváltoztatják a végrehajtás sorrendjét, így a program csak azokat az utasításokat futtatja le, amelyek megfelelnek a logikájának.
  • Ha állítás: Az if utasítás kiértékel egy logikai kifejezést, és egy blokkot futtat, amikor az igaz, és egy másikat, amikor hamis.
  • 🔢 Switch utasítás: A switch utasítás egy értéket összehasonlít több esetcímkével, és a break paranccsal állítja le a folyamatot, ha egyezést talál.
  • 🔁 Hurok közben: A while ciklus egy utasításblokkot ismétel, amíg a feltétele igaz marad, ami ismeretlen számú iterációt jelent.
  • 🔄 A hurokhoz: A for ciklus egy sorban inicializál, tesztel és növel egy számlálót, ideális esetben akkor, ha ismert az ismétlődések száma.
  • 🤖 AI segítség: A GitHub Copilot if, switch és loop logikát tervez, míg az ML.NET ugyanazokat a feltételeket használja fel a gépi tanulási folyamatok elágazásához.

C# feltételes utasítások

Flow Control és feltételes utasítások

A folyamatvezérlés és a feltételes utasítások bármely programozási nyelven elérhetők a program folyamának megváltoztatásához.

Például, ha valaki csak egy adott utasításkészletet szeretne végrehajtani egy bizonyos logika alapján, akkor a folyamatvezérlés és a feltételes utasítások hasznosak lesznek.

Jobban megértheti, ahogy végigmegyünk a C# nyelven elérhető különféle utasításokon.

Felhívjuk figyelmét, hogy az alábbi kódok mindegyike a Program.cs fájlhoz készült.

1) Ha állítás

Az if utasítás egy logikai kifejezés kiértékelésére szolgál egy utasításkészlet végrehajtása előtt. Ha egy kifejezés igaz értéket ad ki, akkor egy utasításkészletet futtat le, ellenkező esetben egy másikat.

Az alábbi példánkban egy érték nevű változóval végezünk összehasonlítást. Ha a változó értéke kisebb, mint 10, akkor egy utasítást fog lefuttatni, egyébként pedig egy másikat.

Ha nyilatkozat

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 Magyarázat:-

  1. Először definiálunk egy value nevű változót, és 11-re állítjuk.
  2. Ezután az „if” utasítással ellenőrizzük, hogy az értéke kisebb-e a változó 10-énél. Az eredmény igaz vagy hamis lesz.
  3. Ha az if feltétel értéke igaz, akkor az „Érték kisebb, mint 10” üzenetet küldjük a konzolnak.
  4. Ha az if feltétel értéke hamis, akkor az „Érték nagyobb, mint 10” üzenetet küldjük a konzolnak.

Ha a fenti kódot megfelelően beírta és a program sikeresen lefut, a következő kimenet jelenik meg.

output:

Ha nyilatkozat

Jól látjuk, hogy az „if” állítást hamisra értékelték. Ezért az „Érték nagyobb, mint 10” üzenetet küldték a konzolnak.

2) Switch utasítás

A switch utasítás az „if” utasítás továbbfejlesztése. Ha több olyan kifejezést kell kiértékelni, amelyeket egy felvételben kell kiértékelni, akkor több „if” utasítás írása problémát jelent.

A switch utasítás egy kifejezés kiértékelésére és a kifejezés eredménye alapján különböző utasítások futtatására szolgál. Ha az egyik feltétel kiértékelése nem igaz, akkor a switch utasítás a következő feltételre lép, és így tovább.

Nézzük meg, hogyan működik ez az alábbi példával. Itt ismét egy „value” nevű változó értékét hasonlítjuk össze. Ezután ellenőrizzük, hogy az érték egyenlő-e 1-gyel, 2-vel, vagy valami teljesen mással.

Kapcsoló nyilatkozat

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 Magyarázat:-

  1. Először definiálunk egy 'value' nevű változót, és 11-re állítjuk.
  2. Ezután a 'switch' utasítást használjuk az 'value' változó értékének ellenőrzésére.
  3. Az esetleírások különböző feltételek beállítására szolgálnak. A feltételek alapján utasításkészletet lehet végrehajtani. Egy switch utasításnak több esetfeltétele is lehet. Az első esetutasítás ellenőrzi, hogy a változó értéke egyenlő-e 1-gyel.
  4. Ha az első eset utasítás igaz, akkor az „Érték 1” üzenet kerül a konzolra.
  5. A break utasítás a teljes switch utasítástól való elszakadásra szolgál, ha egy feltétel igaz.
  6. Az alapértelmezett feltétel egy speciális feltétel. Ez csak azt jelenti, hogy ha egyetlen esetkifejezés sem ad igaz értéket, akkor futtassa az alapértelmezett feltétel utasításkészletét.

Ha a fenti kódot megfelelően beírta és a program sikeresen lefut, a következő kimenet jelenik meg. A kimenet az „Érték más” alapértelmezett értéket írja ki, mivel egyetlen feltétel sem teljesül.

output:

Kapcsoló nyilatkozat

3) Míg hurok

A while ciklus iteratív célokra használatos. Tegyük fel, hogy ha meg akarunk ismételni egy bizonyos utasításkészletet meghatározott számú alkalommal, akkor ciklus használata közben.

Az alábbi példánkban a while utasítást használjuk egy 'i' változó értékének megjelenítésére. A while utasítás az érték háromszori megjelenítésére szolgál.

Miközben hurok

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 Magyarázat:-

  1. Két egész szám változók definiálva vannak, az egyik az érték, a másik az „i”. Az értékváltozót használjuk felső határként, ameddig a while utasításunkat ismételni kell. Az 'i' pedig az iteráció során feldolgozott változó.
  2. A while utasításban az 'i' értékét folyamatosan ellenőrzik a felső határhoz képest.
  3. Itt megjelenítjük az 'i' értékét a konzolon. Az 'i' értékét is növeljük.

Ha a fenti kódot megfelelően beírta és a program sikeresen lefut, a következő kimenet jelenik meg.

output:

Miközben hurok

Itt látható, hogy a while utasítás 3-szor kerül végrehajtásra és egyidejűleg növekszik. És minden alkalommal megjelenítette az 'i' változó aktuális értékét.

4) A hurokhoz

A 'for' ciklust iteratív célokra is használják. Tegyük fel, hogy ha egy bizonyos utasításkészletet adott számú alkalommal szeretnél megismételni, akkor a for ciklust használjuk.

Az alábbi példánkban a 'for' utasítást használjuk egy 'i' változó értékének megjelenítésére. A 'for' utasítás az érték háromszori megjelenítésére szolgál.

Hurokhoz

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 Magyarázat:-

  1. A „for” kulcsszó a „for loop” utasítás indítására szolgál.
  2. A 'for ciklusban' 3 dolgot határozunk meg. Az első egy változó értékének inicializálása, amelyet a „for ciklus” használ.
  3. A második az „i” értékének összehasonlítása egy felső határértékkel. Esetünkben a felső határ a 3 (i<3) érték.
  4. Végül ennek megfelelően növeljük az 'i' értékét.
  5. Itt megjelenítjük az 'i' értékét a konzolon.

Ha a fenti kódot megfelelően beírta és a program sikeresen lefut, a következő kimenet jelenik meg.

output:

Hurokhoz

Itt látható, hogy a 'for' utasítás 3-szor kerül végrehajtásra. És minden alkalommal megjelenítette az 'i' változó aktuális értékét.

GYIK

Az if utasítás tartományokat és összetett logikai feltételeket kezel, míg a switch utasítás egy értéket hasonlít össze több rögzített esetcímkével. A Switch utasítás sok diszkrét érték esetén tisztább, míg az if-else tartományokhoz, több változóhoz és logikai operátorokhoz illik.

A beágyazott if utasítás egy if utasítást egy másikba helyez, így a belső feltétel csak akkor kerül tesztelésre, ha a külső feltétel igaz. Lehetővé teszi a program számára, hogy több függő feltételt is ellenőrizzen, bár a mély beágyazás csökkenti az olvashatóságot.

Egy while ciklus minden iteráció előtt teszteli a feltételét, így akár nulla alkalommal is lefuthat. Egy do-while ciklus a törzs után teszteli a feltételt, így mindig legalább egyszer lefut, ami megfelel a menüknek és a bemeneti validációnak.

A break utasítás azonnal kilép egy ciklusból vagy switch-ből, míg a continue utasítás kihagyja az aktuális iteráció többi részét, és a következőre ugrik. Mindkettő megváltoztatja a folyamatot, de csak a break fejezi be teljesen a ciklust.

A ?: háromkomponensű operátor az if-else operátor tömörített formája. Kiértékel egy feltételt, visszaadja az első értéket, ha a feltétel igaz, és a második értéket, ha hamis, így egy tömör, egysoros értékadást hoz létre.

Egy foreach ciklus egy gyűjtemény, például egy tömb vagy lista minden elemén végigmegy index vagy számláló használata nélkül. Biztonságosan olvassa a gyűjteményt, és megakadályozza a gyakori „off-by-one” és „out-of-range” hibákat.

Igen. A GitHub Copilot a Visual Studio-n belüli megjegyzésekből vagy metódusnevekből származó if, switch, while és for blokkokat javasol. VS Code. RevTekintse meg az egyes javaslatokat a helyes feltételek és ciklushatárok szempontjából, mivel a Copilot egyesével elkövethető hibákat okozhat.

Az ML.NET folyamatok C# feltételes utasításokat használnak a jellemzőértékek szerinti elágazáshoz, és ciklusokat használnak a betanítási sorok közötti iterációhoz. Ugyanez az if, switch és for logika készíti elő az adatokat és az útvonal-előrejelzéseket, keeping egy erősen tipizált gépi tanulási munkafolyamat.

Foglald össze ezt a bejegyzést a következőképpen: