C# IF, Switch, For, While naredbe petlje [Primjeri]

โšก Pametni saลพetak

C# uvjetne naredbe i petlje kontroliraju tok programa pokretanjem ili ponavljanjem blokova koda na temelju logike. Naredbe if, switch, while i for omoguฤ‡uju programu uฤinkovito donoลกenje odluka i iteraciju.

  • ๐Ÿ”€ Kontrola protoka: Uvjetne naredbe mijenjaju redoslijed izvrลกavanja tako da program izvrลกava samo one naredbe koje odgovaraju njegovoj logici.
  • โ“ Ako izjava: Naredba if procjenjuje logiฤki izraz i pokreฤ‡e jedan blok kada je istinit, a drugi kada je neistinit.
  • ๐Ÿ”ข Izjava za promjenu: Naredba switch usporeฤ‘uje jednu vrijednost s nekoliko oznaka sluฤaja i koristi naredbu break za zaustavljanje nakon ลกto se pronaฤ‘e podudaranje.
  • ๐Ÿ” Dok petlja: Petlja while ponavlja blok naredbi dok uvjet ostaje istinit, ลกto odgovara nepoznatom broju iteracija.
  • ๐Ÿ”„ Za petlju: Petlja for inicijalizira, testira i poveฤ‡ava brojaฤ u jednom retku, idealno kada je poznat broj ponavljanja.
  • ๐Ÿค– AI pomoฤ‡: GitHub Copilot izraฤ‘uje logiku if, switch i loop, dok ML.NET ponovno koristi iste uvjete za grananje cjevovoda strojnog uฤenja.

C# uvjetne naredbe

Kontrola toka i uvjetne izjave

Kontrola toka i uvjetne izjave dostupne su u bilo kojem programskom jeziku za promjenu tijeka programa.

Na primjer, ako netko ลพeli izvrลกiti samo odreฤ‘eni skup naredbi na temelju neke odreฤ‘ene logike, tada ฤ‡e kontrola toka i uvjetne naredbe biti korisne.

Bolje ฤ‡ete razumjeti dok budemo prolazili kroz razliฤite iskaze koji su dostupni u C#.

Imajte na umu da je sav kod u nastavku napravljen u datoteci Program.cs.

1) If izjava

Naredba if koristi se za procjenu logiฤkog izraza prije izvrลกavanja skupa naredbi. Ako se izraz isplati kao istinit, tada ฤ‡e se izvrลกiti jedan skup naredbi, inaฤe ฤ‡e se izvrลกiti drugi skup naredbi.

U naลกem primjeru u nastavku, usporedba se vrลกi za varijablu pod nazivom vrijednost. Ako je vrijednost varijable manja od 10, tada ฤ‡e se izvrลกiti jedna naredba ili druga.

If izjava

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 Obrazloลพenje:-

  1. Prvo definiramo varijablu koja se zove vrijednost i postavimo je na vrijednost 11.
  2. Zatim koristimo naredbu 'if' da provjerimo je li vrijednost manja od 10 varijable. Rezultat ฤ‡e biti istinit ili laลพan.
  3. Ako se uvjet if ocijeni kao istinit, tada ลกaljemo poruku "Vrijednost je manja od 10" na konzolu.
  4. Ako se if uvjet procijeni kao laลพno, konzoli ลกaljemo poruku "Vrijednost je veฤ‡a od 10".

Ako se gornji kod ispravno unese i program se uspjeลกno izvede, prikazat ฤ‡e se sljedeฤ‡i izlaz.

Izlaz:

If izjava

Jasno moลพemo vidjeti da je naredba 'if' procijenjena kao laลพna. Stoga je poruka "Vrijednost veฤ‡a od 10" poslana konzoli.

2) Izjava Switch

Naredba switch je poboljลกanje naredbe 'if'. Ako imate viลกe izraza koje je potrebno evaluirati odjednom, pisanje viลกe naredbi 'if' postaje problem.

Naredba switch koristi se za procjenu izraza i pokretanje razliฤitih izjava na temelju rezultata izraza. Ako se jedan uvjet ne ocijeni istinitim, naredba switch ฤ‡e se tada pomaknuti na sljedeฤ‡i uvjet i tako dalje.

Pogledajmo kako ovo funkcionira na primjeru u nastavku. Ovdje ponovno usporeฤ‘ujemo vrijednost varijable pod nazivom 'vrijednost'. Zatim provjeravamo je li vrijednost jednaka 1, 2 ili neฤemu potpuno drugom.

Izjava o prebacivanju

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 Obrazloลพenje:-

  1. Prvo definiramo varijablu pod nazivom 'vrijednost' i postavimo je na vrijednost 11.
  2. Zatim koristimo naredbu 'switch' da provjerimo vrijednost varijable 'value'.
  3. Iskaz sluฤaja se koristi za postavljanje razliฤitih uvjeta. Na temelju uvjeta moลพe se izvrลกiti skup naredbi. Naredba switch moลพe imati viลกestruke uvjete veliฤine. Prva naredba case provjerava je li vrijednost varijable jednaka 1.
  4. Ako je prva naredba case istinita, tada se poruka "Vrijednost je 1" ispisuje na konzolu.
  5. Naredba break se koristi za raskid s cijele naredbe switch, nakon ลกto je uvjet istinit.
  6. Zadani uvjet je poseban uvjet. To samo znaฤi da ako nijedan izraz sluฤaja ne daje vrijednost true, onda pokrenite skup izjava za zadani uvjet.

Ako se gornji kod ispravno unese i program se uspjeลกno izvede, prikazat ฤ‡e se sljedeฤ‡i izlaz. Izlaz ispisuje zadanu vrijednost "Vrijednost je drugaฤija", buduฤ‡i da nijedan uvjet nije zadovoljen.

Izlaz:

Izjava o prebacivanju

3) Dok petlja

Dok se petlja koristi u iterativne svrhe. Pretpostavimo da se koristi petlja while ako ลพelite ponoviti odreฤ‘eni skup iskaza odreฤ‘eni broj puta.

U naลกem primjeru u nastavku koristimo naredbu while za prikaz vrijednosti varijable 'i'. Naredba while koristi se za prikaz vrijednosti 3 puta.

Dok petlja

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 Obrazloลพenje:-

  1. Dva cijela broja varijable definirane su, jedna je vrijednost, a druga je 'i'. Varijabla vrijednosti koristi se kao gornja granica do koje trebamo ponavljati naลกu naredbu while. A 'i' je varijabla koja ฤ‡e biti obraฤ‘ena tijekom iteracije.
  2. U naredbi while, vrijednost 'i' stalno se provjerava prema gornjoj granici.
  3. Ovdje prikazujemo vrijednost 'i' na konzoli. Takoฤ‘er poveฤ‡avamo vrijednost 'i'.

Ako se gornji kod ispravno unese i program se uspjeลกno izvede, prikazat ฤ‡e se sljedeฤ‡i izlaz.

Izlaz:

Dok petlja

Ovdje moลพete vidjeti da se naredba while izvrลกava 3 puta i poveฤ‡ava u isto vrijeme. I svaki put je prikazao trenutnu vrijednost varijable 'i'.

4) Za petlju

Petlja 'for' se takoฤ‘er koristi u iterativne svrhe. Pretpostavimo da ลพelite ponoviti odreฤ‘eni skup naredbi odreฤ‘eni broj puta, tada se koristi petlja for.

U naลกem primjeru u nastavku koristimo naredbu 'za' za prikaz vrijednosti varijable 'i'. Naredba 'za' koristi se za prikaz vrijednosti 3 puta.

Za petlju

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 Obrazloลพenje:-

  1. Kljuฤna rijeฤ 'for' koristi se za poฤetak izjave 'for petlje'.
  2. U 'for petlji' definiramo 3 stvari. Prvi je inicijalizirati vrijednost varijable, koja ฤ‡e se koristiti u 'for petlji'.
  3. Drugi je usporedba vrijednosti 'i' s gornjom granicom. U naลกem sluฤaju, gornja granica je vrijednost 3 (i<3).
  4. Na kraju, u skladu s tim poveฤ‡avamo vrijednost 'i'.
  5. Ovdje prikazujemo vrijednost 'i' na konzoli.

Ako se gornji kod ispravno unese i program se uspjeลกno izvede, prikazat ฤ‡e se sljedeฤ‡i izlaz.

Izlaz:

Za petlju

Ovdje moลพete vidjeti da se naredba 'for' izvodi 3 puta. I svaki put je prikazao trenutnu vrijednost varijable 'i'.

Pitanja i odgovori

Naredba if obraฤ‘uje raspone i sloลพene Booleove uvjete, dok naredba switch usporeฤ‘uje jednu vrijednost s nekoliko fiksnih oznaka veliฤine sluฤaja. Naredba Switch je ฤiลกฤ‡a za mnoge diskretne vrijednosti, dok naredba if-else odgovara rasponima, viลกe varijabli i logiฤkim operatorima.

Ugnijeลพฤ‘ena if naredba smjeลกta jednu if naredbu unutar druge, tako da se unutarnji uvjet testira samo kada je vanjski uvjet istinit. Omoguฤ‡uje programu provjeru nekoliko ovisnih uvjeta, iako duboko ugnijeลพฤ‘ivanje smanjuje ฤitljivost.

Petlja while provjerava svoj uvjet prije svake iteracije, tako da se moลพe izvrลกiti nula puta. Petlja do-while provjerava uvjet nakon tijela, tako da se uvijek izvrลกi barem jednom, ลกto odgovara izbornicima i validaciji ulaza.

Naredba break odmah izlazi iz petlje ili prebacuje, dok naredba continue preskaฤe ostatak trenutne iteracije i prelazi na sljedeฤ‡u. Obje mijenjaju tijek, ali samo naredba break u potpunosti zavrลกava petlju.

Ternarni operator ?: je kompaktni oblik if-else operatora. On procjenjuje uvjet, vraฤ‡a prvu vrijednost kada je uvjet istinit, a drugu vrijednost kada je neistinit, stvarajuฤ‡i saลพetu jednolinijsku dodjelu.

Petlja foreach iterira kroz svaki element kolekcije, kao ลกto je niz ili lista, bez potrebe za indeksom ili brojaฤem. Sigurno ฤita kolekciju i sprjeฤava uobiฤajene pogreลกke "off-by-one" i "out-of-range".

Da. GitHub Copilot predlaลพe if, switch, while i for blokove iz komentara ili naziva metode unutar Visual Studija i VS Code. RevPogledajte svaki prijedlog za ispravne uvjete i granice petlje, buduฤ‡i da Copilot moลพe unijeti pogreลกke koje se razlikuju za jedan.

ML.NET cjevovodi koriste C# uvjetne naredbe za grananje na vrijednostima znaฤajki i petlje za iteraciju kroz retke za uฤenje. Ista logika if, switch i for priprema podatke i usmjerava predviฤ‘anja, keeping tijek rada strojnog uฤenja snaลพno tipiziran.

Saลพmite ovu objavu uz: