C# IF-, Switch-, For- ja While-silmukkalausekkeet [Esimerkkejä]

⚡ Älykäs yhteenveto

C#:n ehtolauseet ja silmukat ohjaavat ohjelman kulkua suorittamalla tai toistamalla koodilohkoja logiikan perusteella. if-, switch-, while- ja for-lausekkeet antavat ohjelman tehdä päätöksiä ja iteroida tehokkaasti.

  • 🔀 Virtauksen ohjaus: Ehdolliset lausekkeet muuttavat suoritusjärjestystä siten, että ohjelma suorittaa vain ne lauseet, jotka vastaavat sen logiikkaa.
  • Jos-lauseke: if-lauseke arvioi totuusarvon ja suorittaa yhden lohkon, kun se on tosi, ja toisen, kun se on epätosi.
  • 🔢 Switch-lauseke: Switch-lauseke vertaa yhtä arvoa useisiin tapaustunnisteisiin ja käyttää break-lauseketta pysäyttääkseen osuman löytyessä.
  • 🔁 Silmukan aikana: While-silmukka toistaa lausekelohkoa niin kauan kuin sen ehto pysyy tosi, mikä sopii tuntemattomalle määrälle iteraatioita.
  • 🔄 Silmukkaa varten: for-silmukka alustaa, testaa ja kasvattaa laskurin arvoa yhdellä rivillä, mikä on ihanteellista silloin, kun toistojen määrä tunnetaan.
  • 🤖 AI-apu: GitHub Copilot luonnostelee if-, switch- ja silmukkalogiikan, kun taas ML.NET käyttää samoja ehtoja uudelleen koneoppimisputkien haarautumiseen.

C#:n ehdolliset lauseet

Flow Control ja ehdolliset lausekkeet

Vuon ohjaus ja ehdolliset lausekkeet ovat saatavilla millä tahansa ohjelmointikielellä ohjelman kulun muuttamiseksi.

Esimerkiksi, jos joku haluaa suorittaa vain tietyn joukon lauseita tietyn logiikan perusteella, vuonhallinta ja ehdolliset lauseet ovat hyödyllisiä.

Saat paremman käsityksen, kun käymme läpi erilaisia ​​lausekkeita, jotka ovat saatavilla C#:ssa.

Huomaa, että kaikki alla oleva koodi on tehty Program.cs-tiedostoon.

1) Jos lausunto

if-lauseketta käytetään totuusarvolausekkeen evaluointiin ennen lausekkeiden joukon suorittamista. Jos lauseke evaluoituu arvoon true, se suorittaa yhden lausekkeiden joukon, muuten se suorittaa toisen lausekkeiden joukon.

Alla olevassa esimerkissämme vertailu tehdään muuttujalle nimeltä value. Jos muuttujan arvo on alle 10, se suorittaa yhden lausekkeen tai toisen lausekkeen.

Jos lausunto

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 Selitys:-

  1. Määritämme ensin muuttujan nimeltä arvo ja asetamme sen arvoksi 11.
  2. Käytämme sitten if-lausetta tarkistaaksemme, onko muuttujan arvo pienempi kuin 10. Tulos on joko tosi tai epätosi.
  3. Jos if-ehto on tosi, lähetämme konsoliin viestin "Arvo on pienempi kuin 10".
  4. Jos if-ehto on epätosi, lähetämme konsoliin viestin "Arvo on suurempi kuin 10".

Jos yllä oleva koodi on syötetty oikein ja ohjelma suoritetaan onnistuneesti, seuraava tulos näytetään.

lähtö:

Jos lausunto

Voimme selvästi nähdä, että "jos"-lause arvioitiin vääräksi. Tästä syystä konsoliin lähetettiin viesti "Arvo on suurempi kuin 10".

2) Vaihda lausunto

Switch-käsky on parannus "if"-lauseeseen. Jos sinulla on useita lausekkeita, jotka on arvioitava yhdellä kertaa, useiden if-lauseiden kirjoittamisesta tulee ongelma.

Switch-käskyä käytetään lausekkeen arvioimiseen ja erilaisten lausekkeiden suorittamiseen lausekkeen tuloksen perusteella. Jos yksi ehto ei arvioi todeksi, kytkinkäsky siirtyy sitten seuraavaan ehtoon ja niin edelleen.

Katsotaanpa, miten tämä toimii alla olevan esimerkin avulla. Tässä vertaamme jälleen 'value'-muuttujan arvoa. Sitten tarkistamme, onko arvo 1, 2 vai jotain aivan muuta.

Vaihda lausunto

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 Selitys:-

  1. Määritämme ensin muuttujan nimeltä "arvo" ja asetamme sen arvoksi 11.
  2. Käytämme sitten 'switch'-käskyä tarkistaaksemme muuttujan 'value' arvon.
  3. Tapauslausekkeita käytetään eri ehtojen asettamiseen. Ehtojen perusteella voidaan suorittaa joukko lausekkeita. Switch-lauseella voi olla useita tapausehtoja. Ensimmäinen tapauskäsky tarkistaa, onko muuttujan arvo yhtä suuri kuin 1.
  4. Jos ensimmäinen tapauslause on tosi, konsoliin kirjoitetaan viesti "Arvo on 1".
  5. Break-lausetta käytetään eroamaan koko kytkinkäskystä, kun ehto on tosi.
  6. Oletusehto on erikoisehto. Tämä tarkoittaa vain sitä, että jos mikään tapauslauseke ei anna arvoa tosi, suorita oletusehdon lauseet.

Jos yllä oleva koodi on syötetty oikein ja ohjelma suoritetaan onnistuneesti, seuraava tulos näytetään. Tuloste tulostaa oletusarvon "Arvo on erilainen", koska mikään ehto ei täyty.

lähtö:

Vaihda lausunto

3) Silmukan ollessa

While-silmukkaa käytetään iteratiivisiin tarkoituksiin. Oletetaan, että jos haluat toistaa tietyn lausejoukon tietyn määrän kertoja, niin silmukkaa käytetään.

Alla olevassa esimerkissämme käytämme while-lausetta muuttujan 'i' arvon näyttämiseen. While-lausetta käytetään arvon näyttämiseen 3 kertaa.

Vaikka silmukka

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 Selitys:-

  1. Kaksi kokonaislukua muuttujat on määritelty, joista toinen on arvo ja toinen 'i'. Arvomuuttujaa käytetään ylärajana, johon meidän tulee iteroida while-lause. Ja "i" on muuttuja, joka käsitellään iteroinnin aikana.
  2. While-lauseessa i:n arvoa tarkistetaan jatkuvasti ylärajaa vasten.
  3. Tässä näytämme 'i':n arvon konsolille. Lisäämme myös i:n arvoa.

Jos yllä oleva koodi on syötetty oikein ja ohjelma suoritetaan onnistuneesti, seuraava tulos näytetään.

lähtö:

Vaikka silmukka

Tästä näet, että while-lause suoritetaan 3 kertaa ja kasvatetaan samaan aikaan. Ja joka kerta se näytti muuttujan "i" nykyisen arvon.

4) Silmukkaa varten

'For'-silmukkaa käytetään myös iteratiivisiin tarkoituksiin. Oletetaan, että jos haluat toistaa tietyn lausejoukon tietyn määrän kertoja, käytetään for-silmukkaa.

Alla olevassa esimerkissämme käytämme 'for'-lausetta muuttujan 'i' arvon näyttämiseen. For-lausetta käytetään arvon näyttämiseen 3 kertaa.

Silmukalle

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 Selitys:-

  1. "for"-avainsanaa käytetään "for-silmukka"-lausekkeen aloittamiseen.
  2. "For-silmukassa" määrittelemme 3 asiaa. Ensimmäinen on alustaa muuttujan arvo, jota käytetään 'for-silmukassa'.
  3. Toinen on verrata "i":n arvoa ylärajaan. Meidän tapauksessamme yläraja on arvo 3 (i<3).
  4. Lopuksi lisäämme 'i':n arvoa vastaavasti.
  5. Tässä näytämme 'i':n arvon konsolille.

Jos yllä oleva koodi on syötetty oikein ja ohjelma suoritetaan onnistuneesti, seuraava tulos näytetään.

lähtö:

Silmukalle

Tässä näet, että 'for'-lause suoritetaan 3 kertaa. Ja joka kerta se näytti muuttujan "i" nykyisen arvon.

UKK

if-lauseke käsittelee arvoalueita ja monimutkaisia ​​totuusarvoehtoja, kun taas switch-lauseke vertaa yhtä arvoa useisiin kiinteisiin tapauskohtaisiin tunnisteisiin. Switch on selkeämpi monille diskreeteille arvoille, kun taas if-else sopii arvoalueille, useille muuttujille ja loogisille operaattoreille.

Sisäkkäinen if-lauseke sijoittaa yhden if-lausekkeen toisen sisään, joten sisäinen ehto testataan vain, kun ulkoinen ehto on tosi. Se antaa ohjelman tarkistaa useita riippuvaisia ​​ehtoja, vaikka syvä sisäkkäisyys heikentää luettavuutta.

While-silmukka testaa ehtoaan ennen jokaista iteraatiota, joten se voi suorittaa ehtonsa nolla kertaa. Do-while-silmukka testaa ehdon rungon jälkeen, joten se suoritetaan aina vähintään kerran, mikä sopii valikoille ja syötteen validointiin.

Break-lauseke poistuu silmukasta tai switchistä välittömästi, kun taas continue-lauseke ohittaa nykyisen iteraation loppuosan ja siirtyy seuraavaan. Molemmat muuttavat työnkulkua, mutta vain break lopettaa silmukan kokonaan.

Kolmiosainen operaattori ?: on if-else-operaattorin kompakti muoto. Se arvioi ehdon, palauttaa ensimmäisen arvon, kun ehto on tosi, ja toisen arvon, kun se on epätosi, jolloin tuloksena on ytimekäs yksirivinen sijoittelu.

Foreach-silmukka käy läpi jokaisen kokoelman elementin, kuten taulukon tai listan, ilman indeksiä tai laskuria. Se lukee kokoelman turvallisesti ja estää yleiset "off-by-one"- ja "out-of-range"-virheet.

Kyllä. GitHub Copilot ehdottaa if-, switch-, while- ja for-lohkoja kommentin tai metodin nimen perusteella Visual Studiossa ja VS Code. RevTarkista jokainen ehdotus oikeiden ehtojen ja silmukan rajojen varalta, koska Copilot voi aiheuttaa yksittäisiä virheitä.

ML.NET-putket käyttävät C#:n ehtolauseita haarautuakseen ominaisuusarvojen perusteella ja silmukoita iteroidakseen harjoitusrivien läpi. Sama if-, switch- ja for-logiikka valmistelee dataa ja reittiennusteita, keepping koneoppimisen työnkulku, joka on vahvasti tyypitetty.

Tiivistä tämä viesti seuraavasti: