Cvičení – nastavení a získávání hodnot z proměnných
Vzhledem k tomu, že proměnné jsou dočasné kontejnery úložiště pro data, mají být zapsány do a číst z nich. V následujícím cvičení budete mít příležitost si obojí vyzkoušet.
Cvičení – práce s proměnnými
V tomto cvičení nadeklarujete proměnnou, přiřadíte jí hodnotu, kterou pak načtete a provedete další akce.
Vytvoření první proměnné
Vyberte veškerý kód v editoru .NET a stisknutím klávesy Delete nebo Backspace ho odstraňte.
Do editoru kódu zadejte následující kód:
string firstName; firstName = "Bob";
Pokud chcete deklarovat proměnnou, zadejte datový typ, který chcete použít, a název proměnné. K přiřazení hodnoty proměnné použijte operátor přiřazení, kterým je jedno rovnítko (=
).
Poznámka:
Přiřazení hodnoty se také označuje jako „nastavení proměnné“ nebo jednoduše jako operace „set“.
Nesprávné přiřazení hodnoty proměnné
Všimněte si, že přiřazení probíhá zprava doleva – je to důležité. Jinými slovy, kompilátor C# musí nejprve porozumět hodnotě na pravé straně operátoru přiřazení, potom může provést přiřazení proměnné na levé straně operátoru přiřazení. Pokud pořadí otočíte, kompilátor jazyka C# tomu neporozumí.
Upravte kód, který jste napsali, tak, aby odpovídal následujícímu kódu:
string firstName; "Bob" = firstName;
Teď tento kód spusťte. Ve výstupní konzoli se zobrazí následující chyba:
(2,1): error CS0131: The left-hand side of an assignment must be a variable, property or indexer
Nesprávné přiřazení hodnoty nesprávného datového typu proměnné
Dozvěděli jste se, že jazyk C# byl navržen tak, aby vynucoval typy. Když pracujete s proměnnými, vynucení typů znamená, že nemůžete přiřadit hodnotu jednoho datového typu proměnné deklarované pro uložení jiného datového typu.
Upravte kód, který jste napsali, tak, aby odpovídal následujícímu kódu:
int firstName; firstName = "Bob";
Teď tento kód spusťte. Ve výstupní konzoli se zobrazí následující chyba:
(2,9): error CS0029: Cannot implicitly convert type 'string' to 'int'
Tato chybová zpráva napovídá, co se kompilátor jazyka C# pokouší provést na pozadí. Pokusil se "implicitně převést" řetězec "Bob" na int hodnotu; to však není možné. I tak se jazyk C# pokusil provést převod, ale selže, protože neexistuje žádný číselný ekvivalent slova "Bob".
Další informace o implicitním a explicitním převodu typů se dozvíte později. Prozatím nezapomeňte, že proměnná může obsahovat pouze hodnoty odpovídající zadanému datovému typu.
Načtení hodnoty uložené v proměnné
K načtení hodnoty z proměnné stačí použít její název. Tento příklad nastaví hodnotu proměnné a pak ji načte a zobrazí ji v konzole.
Upravte kód, který jste napsali, tak, aby odpovídal následujícímu kódu:
string firstName; firstName = "Bob"; Console.WriteLine(firstName);
Teď tento kód spusťte. Na výstupní konzole uvidíte následující výsledek:
Bob
Načtení hodnoty z proměnné se také označuje jako „získání proměnné“ nebo jednoduše jako operace „get“.
Při psaní řádků kódu uvidíte, že kompilátor kontroluje kód a zjišťuje možné chyby. Kompilátor je skvělý nástroj, který vám pomůže kód opravit dříve. Teď, když znáte různé typy chyb, můžete chyby rychle opravit pomocí chybových zpráv kompilátoru.
Změna přiřazení hodnoty proměnné
Proměnnou můžete používat opakovaně a opakovaně jí také můžete přiřazovat hodnotu, kolikrát budete potřebovat. Ukážeme si to na tomto příkladu.
Upravte kód, který jste napsali, tak, aby odpovídal následujícímu kódu:
string firstName; firstName = "Bob"; Console.WriteLine(firstName); firstName = "Liem"; Console.WriteLine(firstName); firstName = "Isabella"; Console.WriteLine(firstName); firstName = "Yasmin"; Console.WriteLine(firstName);
Teď tento kód spusťte. Na výstupní konzole uvidíte následující výsledek:
Bob Liem Isabella Yasmin
Inicializace proměnné
Před získáním hodnoty z proměnné je nutné nastavit proměnnou na hodnotu. Jinak se zobrazí chyba.
Upravte kód, který jste napsali, tak, aby odpovídal následujícímu kódu:
string firstName; Console.WriteLine(firstName);
Teď tento kód spusťte. Na výstupní konzole uvidíte následující výsledek:
(2,19): error CS0165: Use of unassigned local variable 'firstName'
Abyste se vyhnuli možnosti nepřiřazené místní proměnné, doporučujeme nastavit hodnotu co nejdříve po deklarování.
Ve skutečnosti můžete k deklaraci a nastavení hodnoty proměnné použít jeden řádek kódu. Této technice se říká inicializace proměnné.
Upravte kód, který jste napsali, tak, aby odpovídal následujícímu kódu:
string firstName = "Bob"; Console.WriteLine(firstName);
Teď tento kód spusťte. Měl by se zobrazit následující výstup:
Bob
Rekapitulace
Tady je, co jste se zatím naučili o práci s proměnnými:
- Před načtením (získání) hodnoty z proměnné musíte přiřadit (nastavit) hodnotu proměnné.
- Proměnnou můžete inicializovat přiřazením hodnoty proměnné v okamžiku deklarace.
- Zadání probíhá zprava doleva.
- Jako operátor přiřazení použijete jeden znak rovná se.
- Pokud chcete načíst hodnotu z proměnné, použijte pouze název proměnné.