Naredba if dozvoljava kontrolu toka izvršavanja aplikacije u zavisnosti od vrednosti logičkog izraza koji se testira. Postoji tri osnovne verzije korišćenja if naredbe : if, if else i if else if.
Verzija 1:
if (uslov)
naredba1;
Verzija 2:
if (uslov)
naredba1;
else naredba2;
Verzija 3:
if (uslov)
{
naredba1;
naredba2;
}
else
{
naredba3;
naredba4;
}
Kod sve tri verzije naredbe if testira se neki logički uslov označen oznakom "uslov". Kod osnovne verzije if naredbe, ukoliko je logički iskaz tačan tj. ima vrednost true izvršava se naredba 1. Umesto naredbe 1 može se zahtevati izvršavanje bloka naredbi koje se u tom slučaju stavljaju između vitičastih zagrada. U drugoj i tećoj verziji predstavljena je sintaksa naredbe if else. Ako je logički uslov tačan izvršava se naredba naredba1 a ukoliko nije izvršava se naredba naredba2. Slično je sa trećim pravougaonikom stim što se u ovom slučaju izvršavaju odgovarajući blokovi naredbi u zavisnosti od toga da li je logočki uslov koji se testira tačan ili nije. U nastavku predstavljena je i struktura naredbe if else if.
if (uslov1)
{
B1;
}
else if (uslov2)
{
B2;
}
else
{
B3;
}
Ako je uslov uslov1 istinit izvršava se blok naredbi simbolično označen sa B1, ukoliko uslov1 nije istinit proverava se da li je uslov2 istinit, ako jeste izvršava se blok naredbi B2. Ukoliko ni jedan ni drugi uslov nije istinit izvršava se blok naredbi B3.
Ovde je prikazan primer upotrebe switch naredbe:
switch(broj)
{
case 1:
Console.WriteLine("Uneli ste broj jedan");
break;case 2:
Console.WriteLine("Uneli ste broj 2");
break;default:
Console.WriteLine("Uneli ste broj koji nije niti 1 niti 2");
break;
}
Izvršavanje switch naredbe sastoji se iz nekoliko koraka:
U okviru svakog case bloka nalazi se break naredba da bi se izvršavanje koda zaustavilo a ne prešlo na sledeći case blok.
U nastavku su prikazane for, while i do petlja. Petlja for se koristi za izvršavanje bloka naredbi tačno određeni broj puta. Izvršavanje for petlje sastoji se od inicijalizacije petlje, provere uslova izvršavanja petlje i korekcije (najčešće inkrementiranje ili dekrementiranje brojača).
int suma = 0;
for ( int i = 1; i < 1001; i++ )
{
suma += i;
}
U for petlji je definisan brojač i koji se inicijalizuje na vrednost 1, definisan je uslov i < 1001 kao uslov izvršavanja tela petlje i definisana je korekcija i++ kojim se brojač petlje inkrementira pri svakom prolasku kroz petlju.
Kod while petlje se najpre testira neki logički uslov i tek ako je on tačan ulazi se u petlju. Unutar tela petlje se menja logički uslov pri svakom prolasku kroz petlju. Kad logički uslov nije istinit izlazi se iz petlje. Za razliku od for petlje kod while petlje se ne mora znati unapred broj ciklusa petlje.
int j = 1;
int suma1 = 0;
while ( j < 1001 )
{
suma1 += j;
j++;
}
Kod do petlje blok naredbi se uvek izvršava bar jedanput a ako je iskaz while tačan telo petlje definisano unutar do dela se ponovo izvršava. Unutar tela petlje se menja izraz koji se testira u while delu. Primer petlja sa while (true) je beskonačna petlja pošto je logički iskaz koji se testira uvek tačan. U ovom slučaju izvršeno je "nasilno" izlaženje iz petlje kada vrednost brojača koji se inkrementira pri svakom prolasku kroz petlju pređe određenu granicu. To je izvršeno korišćenjem naredbe break.
int k = 0;
int suma3 = 0;
do
{
k ++;
if ( k > 1000 )
{
break; // izlazak iz petlje ako je k> 1000
}
suma3 += k;
}
while ( true );
Sve tri petlje služe za sumiranje prirodnih brojeva od 1 do 1000.
Postoje dve vrste konverzije između tipova podataka i to implicitna i eksplicitna. Implicitna konverzija se vrši od strane kompajlera kada se garantuje da neće doći do odsecanja informacija. Implicitna konverzija se uvek izvodi iz tipa koji zauzima manje prostora u memoriji u tip koji zauzima više prostora u memoriji npr. implicitno se konvertuje broj tipa int u broj tipa long.
Kod ekplicitne konverzije eksplicitno se traži od kompajlera da izvrši konverziju iz jednog tipa u drugi bez obzira da li tom konverzijom dolazi do gubitka informacije ili ne. U nastavku je prikazana eksplicitna konverzija tj. "kastovanje" broja tipa int u broj tipa short.
int x = 65537 ;
short z = (short) x ;
// z = 1
Kao što se vidi u ovom slučaju dolazi do gubitka informacije pa se od broja 65537 dobija broj 1 iz razloga što se broj 65537 ne može predstaviti sa 2 bajta koliko je rezervisano za short tip.
U tabeli su sistematizovani operatori koji se koriste u programskom jeziku C#. Oznake operatora su slične kao i u većini drugih programskih jezika. Pri radu sa operatorima mora se voditi računa o prioritetu operatora. Ukoliko želimo da promenimo prirodan redosled izvršavanja operatora koristimo zagrade.
Tabela 1: Operatori
Enumeracijski tip specificira grupu imenovanih numeričkih konstanti. Enumeracijski tip je korisnički definisan tip, što znači da se može kreirati enumeracioni tip i deklarisati promenljiva tog tipa. Enumeracioni tip se deklariše unutar klase ili unutar prostora imena ali ne i unutar metode. Podrazumevano prvi član enumeracija ima vrednost 0, drugi 1 itd. Moguće je deklarisati enumeracioni tip na taj način što će svakom članu biti dodeljena konstanta proizvoljne vrednosti. Enumeracioni tip se deklariše korišćenjem ključne reči enum. Ovde je prikazano definisanje enumeracionog tipa Planet kao i deklaracija i inicijalizacija promenljive aPlanet koja je tipa Planet.
enum Planet
{
Mercury,
Venus,
Earth,
Mars
}Planet aPlanet = Planet.Mars;
Console.WriteLine("{0}", aPlanet); //Displays Mars