• Apgrejdovali smo forum na XenForo 2.1.1, ukoliko imate predloga vezanih za izgled ili funkcionalnost foruma, ili ukoliko naletite na neki problem, javite nam OVDE

    DEFINISALI SMO PRAVILA FORUMA. Pročitajte ih, pojaviće se automatski kada krenete da čitate nešto!

XNA Programiranje Igara | Tutorijal #05 | Logičko ispitivanje

Uni

PCAXE Addicted
Učlanjen(a)
31.08.2018.
Poruka
2.469
Rezultat reagovanja
984
Moja konfiguracija
PC / Laptop Name:
Lenovo ThinkPad X250 - i5 5300U/8GB/256GB EVO 860/6 Cell
Mice & keyboard:
Bloody V7M & Stock Thinkpad X250 Keyboard
OS & Browser:
Windows 10 + Microsoft Edge | ArcoLinux + i3 + Mozilla Firefox Quantum
Dugo me nije bilo, evo došao vikend :)
Želim da kažem da će tutorijali ove i sledeće sedmice biti jako retki, pošto još toliko traje škola :rolleyes:

Pre svega, kao i uvek, apelujem na vas da, ukoliko ste propustili iti jedan tutorijal iz serije ovih, iščitate dotične, pošto se svi nadovezuju jedni na druge. Ovo možete učiniti unosom "#xna-gwid" bez navodnika u polje foruma "Pretraga...". :)

Šta ćemo danas obraditi?
Cilj današnjeg tutorijala je da vam omogući da uradite nešto konkretno, što može biti korisno u realnom svetu :) Moći ćete da ispitate korisnički unos, pa u zavisnosti od njega odgovorite željenom porukom, pa ako ste spremni 'ajde da počnemo.

If i Else funkcije
If je funkcija koja nam omogućuje da ispitamo korisnički unos logičkim operatorom. Ovi operatori mogu biti :
  • == u značenju jednakosti
  • < u značenju manje od
  • > u značenju veće od
  • <= u značenju manje ili jednako
  • >= u značenju veće ili jednako
Svaki od ovih operatora možemo i negirati, dodavanjem prefiksa !, kao što je :
  • !== u značenju nejednakosti
  • !< u značenju nije manje od, što ima isto značenje kao >=
  • !> u značenju nije veće od, što ima isto značenje kao <=
  • !<= u značenju nije manje ili jednako, što ima isto značenje kao >
  • !>= u značenju nije veće ili jednako, što ima isto značenje kao <
Takođe možemo izvršiti i više provera istovremeno, koristeći sledeće operatore :
  • && u značenju i
  • || u značenju ili
If funkciju možemo izraziti u sledećem obliku :
if (logika)
{
radnja;
}
U realnosti polje "logika" možemo zameniti sa bilo kakvim unosom oblika "a operator b", gde je a promenljiva ili statička vrednost koju upoređujemo sa vrednošću b. Ukoliko je radnja uspešna, kao što je "5 > 4" rezultiraće sa "true", a ako je neuspešna poput "3 == 2" rezultiraće sa "false". Kod koji je predstavljen poljem "radnja", izvršava se samo u slučaju da je ishod logičkog dela "true".

U sledećem primeru, program će ispisati poruku "Veće je!", ako je zadata vrednost manja od 4.
Tutorijal.jpg
U navedenom kodu, prvo vršimo deklaraciju celobrojne vrednosti "a" tipa Int32, tj. int. Zatim vršimo inicijalizaciju celog broja b, čiju će vrednost kasnije zadati korisnik.
U petnaestoj liniji koda, od korisnika je zatrašen unos (Console.ReadLine()), koji je eksplicitno konvertovan u celobrojni tip, jer kao što znamo ova funkcija vraća reč (string), koji ima veći stepen primarnosti u C#-u.
Vrši se provera da li je zadata vrednost manja od 4, ukoliko jeste, program sugeriše da je 4 veće od zadatog broja.
Na kraju, da bi program bio prekinut, zatražimo od korisnika da pritisne taster Enter.
Jednostavna struktura, zar ne? :)

Hajde sada da umesto neke vrednosti koja je manja od 4, napišemo 4 ili neku koja je veća. Videćemo da se ništa ne dešava i dobijamo samo jednu praznu liniju. Ovo je zato što se blok if izvršava samo ako je povratna vrednost "true". Šta ako želimo da ispišemo "Nije veće!" za vrednosti koje su manje od 4 ili jednake 4?
Za ovo će nam trebati funkcija "else". Ova funkcija je suprotna od if i ne traži nikakve dodatne parametre, već samo radnju koju treba izvršiti. Telo funkcije else se izvršava samo ako je povratna vrednost funkcije if jednaka "false" i ne može stajati samostalno. Primenjuje se u sledećem obliku :
if (logika)
{
radnja;
}
else
{
drugaRadnja;
}
Pogledajmo sada sledeći blok koda :
Tutorijal2.jpg
Telo bloka Main je ostalo relativno slično, osim nove else funkcije. U ovoj funkciji, ukoliko parametri funkcije if niju tačni, izvršava se blok funkcije else, tj. Console.WriteLine("Nije veće!");

Ako bismo želeli da ispitamo tri vrednosti i u zavisnoti od povratnih vrednosti da zadajemo nove radnje, možemo više if funkcija "ugnezditi" unutar else funkcija, kao u primeru ispod.
Tutorijal3.jpg
Ovaj kod ukoliko zadata vrednost nije veća od a, izvršava novi kod. Ovaj kod proverava da li je vrednost veća od a i ispisuje novi tekst ukoliko je to tačno. Ako ni to nije tačno, izvršava se nova radnja, koja uklanjanjem vrednosti koje pripadaju skupu a < b i onih koje pripadaju skupu a > b, dolazi do zaključka da je a jednako b i to signalizira korisniku.

Ovaj kod, primetićete izgleda vrlo nerazumno i konfuzno. Zbog ovakvih slučajeva, postoji "else if" funkcija, koja se ponaša slično kao "ugneždena" if funkcija unutar else funkcije. Primer ispod, daje iste rezultate kao prethodni.
Tutorijal4.jpg

Važno je takođe znati da može postojati neograničen broj if funkcija, kao i else if funkcija koje ih prate, dok uz jednu if funkciju može stajati samo jedna else funkcija.

Šta dalje?
Želeo bih da vam se zahvalim na strpljenju pre svega. Nadam se da je ovaj tutorijal, zajedno sa prethodnim bio zanimljiv i želeo bih ovom prilikom da vam napomenem da se možete "igrati" kombinacijom ovog, prehodnog i pretprošlog tutorijala. Recimo, ukoliko je korisniči unos "boja teksta 2" zamenićemo je u zelenu pomoću funkcije "Console.ForegroundColor = ConsoleColor.Green;". U planu imam još samo 6-7 tutorijala koji objašnjavaju Console aplikacije, a nakon toga se bacamo na pravo XNA programiranje igara :)

Srećno kuckanje! :)
 
Vrh