Základ C# 3 – Premenné a dátové typy [Variables and Data types]

Dnes si predstavíme funkčnosť premenných [Variables] a ukážeme si, aké typy premenných poznáme.

Na začiatok by sme si mali povedať, čo to vlastne premenné sú. Premenné sú spôsob ako uchovať informácie, pracovať s nimi a neskôr ich použiť. Ako príklad poslúži jednoduchá funkcia, ktorá prepočíta eurá na doláre.

static void Main(string[] args)
{
	double cena euro = 10; //Pôvodná cena v eurách
	double cena dolar = cena_euro * 1.19; //Prepočet na doláre podľa aktuálneho kurzu (v čase písania článku)
}

Na začiatku sme si definovali premennú cena_euro, ktorá ma typ double a hodnotu 10. V druhom riadku sme pridali ďalšiu premennú cena_dolar, ktorej sme priradili hodnotu premennej cena_euro vynásobenej 1.08105, čo je aktuálny kurz. Takto sme definovaly dve premenné.

Definícia, Deklarácia a Inicializácia

Premenné je možné vytvoriť dvoma spôsobmi – ich deklarovaním alebo definovaním [Declaration, Definition]

Deklarácia premennej prebieha vymedzením jej typu a mena. Definícia je druh deklarácie, pri ktorej premennej priradíme aj hodnotu. Priradenie hodnoty premennej sa inak nazýva aj Inicializácia [Initialization].

int cislo; //Deklarácia
int druhe_cislo = 5; //Definícia

Tieto premenné môžeme ďalej používať a meniť ich hodnoty. Najzákladnejší spôsob priradenia hodnoty už existujúcej premennej je napísať jej meno, znak priradenia a novú hodnotu, napr. cislo = 3; .  V predošlom diely sme si ukázali niektoré operátori, medzi ktorým bol aj operátor priradenia =.

Existujú aj iné operátori, používané, ak už premenná hodnotu má.

cislo += 5; //Zvýši hodnotu premennej císlo o 5 (ak bolo 3, tak bude 8)
cislo -= 2; //Zníži hodnotu premennej cislo o 2 (ak bolo 8, bude 6)
cislo *= druhe_cislo; //Vynásobí hodnotu premennej hodnotou premennej druhe_cislo. (ak bolo 6, bude 30)
cislo /= 2 //Vydelí hodnotu premennej cislo dvomi (bude 15)
cislo++; //Zväčší hodnotu cislo o 1 (bude 16)
cislo--; //Zmenší hodnotu cislo o 1 (bude 15)

Tieto operátori nám uľahčujú prácu s programom, pretože nemusíme stále písať cislo = cislo + 5; a podobné.

Dátové typy

Teraz by sme si mali povedať niečo o dátových typoch [data types]. Pri deklarovaní premennej určujeme jej typ. Už sme si ukázali typ double aj typ int, čo to však je za typy? Na to som si pripravil menšiu tabuľku.

Kliknite pre zobrazenie

Typ Popis Veľkosť v bytoch Rozsah Príkľad
byte Ukladá jeden neznamienkový byte. 1 0 až 255 byte farba = 25;
short Ukladá malé celé čísla 2 -32768 až 32767 short body = 300;
int Celé číslo 4 -2147483648 až 2147483647 int cena = 3010049;
long Ukladá veľké celé čísla 8 -9223372036854775808 až
9223372036854775807
long ucet = -3089949;
ushort Ukladá malé neznamienkové celé čísla 2 0 až 65535 ushort body = 489;
uint Ukladá neznamienkové celé čísla 4 0 až 4294967295 uint cena = 564321;
ulong Ukladá veľké neznamienkové celé čísla 8 0 až 18446744073709551615 ulong ucet = 589654;
float Ukladá menšie reálne čísla 4 ±1.5 × 10^−45 až ±3.4 × 10^38
presnosť na 7 číslic
float cislo = 0.5f;
double Ukladá väčšie reálne čísla 8 ±5.0 × 10^−324 až ±1.7 × 10^308
presnosť na 15 až 16 číslic.
double cislo = 0.15;
decimal Ukladá menšie, presné reálne čísla. 16 ±1.0 × 10^−28 až ±7.9 × 10^28
presnosť na 28 až 29 číslic.
decimal X = 0.28;
char ukladá jeden znak 2 akýkoľvek jeden znak char pismeno = ‚A‘;
string ukladá reťazec znakov. reťazec znakov ľubovolnej dĺžky. string veta = „Hello, World!“;
bool ukladá pravdivostnú hodnotu. 1 true alebo false bool hotovo = true;

Ako vidíte dátových typov nieje tak veľa. Teraz sa bližšie pozrieme na niektoré z nich.

String je dátový typ obsahujúci textový reťazec znakov. Je možné pomocou znaku + spájať dva reťazce do kopy a kompilátor vie automaticky skonvertovať mnohé dátové typy na string. string test = „Výsledok je “ + cislo;  Na tomto príklade vidíte, že sa snažíme pripojiť k premennej test hodnotu premennej cislo, ktorá je typu int – čiže celého čísla. C# automaticky skonvertuje premennú cislo na typ string a výsledná hodnota premennej test teda bude „Výsledok je 15„.

Ďalší typ na ktorí sa pozrieme je bool. Tento typ v sebe uchováva pravdivostnú hodnotu true alebo false. Hodnotu je možné mu priradiť priamo, ale aj pomocou porovnávania iných hodnôt, napríklad bool mensie = cislo < druhe_cislo; . Keďže premenná cislo má hodnotu 15 a premenná druhe_cislo 5, výsledok bude false, čiže nepravda. 15 totiž nieje menšie ako 5. Okrem operátorov ktoré sme si ukázali v predošlom diely, existujú aj operátori ako & alebo |. Tieto slúžia na využitie základných booleovských opéraci – a (&&), alebo(||). Zdvojená varianta symbolov (&&, ||) slúži na uľahčenie procesoru – akonáhle program zistí istý výsledok, ktorý už žiadne ďalšie výpočty nezmenia prestane počítať. Použitie samotného symbolu je vhodné, ak chcete aby program počítal naďalej. Znak & predstavuje booleovskú operáciu a [AND] a znak | predstavuje alebo [OR].

Tabuľka AND
ABVCode
falsefalsefalsefalse & false = false
falsetruefalsefalse & true = false
truefalsefalsetrue & false = false
truetruetruetrue & true = true
Tabuľka OR
ABVCode
falsefalsefalsefalse | false= false
falsetruetruefalse | true = true
truefalsetruetrue | false = true
truetruetruetrue | true = true

Nakoniec si povieme niečo o priraďovaní hodnoty jedného k premennej iného. Pri pokuse o priradenie hodnoty k premennej, ktorá je iného typu, kompilátor sa túto hodnotu pokúsi konvertovať. To je možné len pri kompatibilných typoch a len pokiaľ je priraďovaný typ menší. Čiže je možné priradiť hodnotu short k premennej typu int, naopak to už ale nepôjde. Ak ju však napriek tomu chcete priradiť a nevadí vám strata presnosti, môžete hodnotu pretypovať. To sa robí špecifikovaním výsledného typu v zátvorkách. Pozrite sa na nasledujúci príklad.

short A = 5;
int B = A; //správne - kompilátor automaticky prevedie hodnotu typu A (short) na int.

int A = 5;
short B = A; //nesprávne - kompilátor zahlási chybu.

int A = 5;
short B = (short)A; //správne - určily sme pretypovanie typu int na typ short.

Niektoré nekompatibilné typy premenných je tiež možné konvertovať a to napríklad string na int.

string text = "459"; //string obsahujúci číslo ako text.
int cislo = int.Parse(text); //jeden zo spôsobov konverzie
cislo = Convert.ToInt32(text); //konverzia využitím triedy Convert

text = cislo.ToString(); //Konverzia typu int na string.
text = Convert.ToString(cislo); //Konverzia pomocou triedy Convert
text = Convert.ToString(cislo, 16); //Konverzia na text - výsledok bude v 16kovej sústave.

Tak a na dnešok by to bolo všetko, v ďalšom dieli sa pozrieme na polia premenných.

Pridajte Komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *

Scroll to Top