Cvičení – vrácení čísel z metod
- 10 min
Často budete muset vracet čísla z metod a používat výsledky pro jiné úkoly. V tomto krátkém cvičení si procvičíte vrácení int a double datové typy a zachytíte vrácené hodnoty.
Vytvoření metody, která vrací celé číslo
Předpokládejme, že navštěvujete Vietnam a chcete vytvořit stručný program, který převádí měnu. Můžete předpokládat, že aktuální směnný kurz je 1 USD = 23500 VND. V této úloze napíšete metodu, která převede USD na VND.
V editoru Visual Studio Code odstraňte veškerý existující kód z předchozích cvičení.
Do editoru visual studio Code zadejte následující kód:
double usd = 23.73; int vnd = UsdToVnd(usd); Console.WriteLine($"${usd} USD = ${vnd} VND"); int UsdToVnd(double usd) { }V tomto kroku inicializujete dvě proměnné pro uložení hodnot USD a VND. Všimněte si, že
vndje inicializován na výsledek metodyUsdToVnd. Metoda vrátí celočíselnou hodnotu, protože VND je obvykle reprezentována v celých číslech. K zobrazení výsledků převoduConsole.WriteLineměny se použije.Dále přidáte kód pro provedení převodu. Aktualizujte metodu
UsdToVndnásledujícím kódem:int UsdToVnd(double usd) { int rate = 23500; return (int) (rate * usd); }Pokud vynecháte přetypování z vráceného výsledku, zobrazí se následující chyba:
Cannot implicitly convert type 'double' to 'int'.K tomu dochází, protože kompilátor se pokusí přetypovat hodnotu vrácenou tak, aby odpovídala datovému typu zadanému v podpisu metody. Implicitní přetypování je však k dispozici pouze v případě, že v důsledku převodu nedojde ke ztrátě dat. Vrácená hodnota se musí vždy shodovat s datovým typem zadaným v podpisu metody, takže v tomto případě musíte výsledek přetypovat.
V případě potřeby otevřete integrovaný panel terminálu editoru Visual Studio Code.
Na příkazovém řádku terminálu zadejte příkaz dotnet run a porovnejte výstup s následujícími:
$23.73 USD = $557655 VNDPokud váš kód zobrazí neočekávané výsledky, budete muset zkontrolovat kód, abyste našli chybu a aktualizovali ji. Spusťte kód znovu, abyste zjistili, jestli jste problém vyřešili. Pokračujte v aktualizaci a spouštění kódu, dokud váš kód nevygeneruje očekávané výsledky.
Vytvoření metody, která vrací dvojitou hodnotu
Dále vytvoříte metodu pro převod VND zpět na USD.
Na konci
UsdToVndmetody vytvořte nový prázdný řádek kódu.Zadejte následující kód:
double VndToUsd(int vnd) { }Aktualizujte metodu
VndToUsdnásledujícím kódem:double VndToUsd(int vnd) { double rate = 23500; return vnd / rate; }V tomto případě musíte
ratebýt nebodoublejinak kompilátor používá celočíselné dělení a vrátit zkrácenouinthodnotu. USD musí být reprezentováno desetinným číslem.Pokud nastavíte
ratemístointdoubletoho , všimnete si, že kompilátor neobsahuje žádné chyby. K tomu dochází, protože hodnotavnd / rateje implicitně přetypována nadoubledatový typ zadaný v podpisu metody. Při vytváření metod, které vracejí číselné hodnoty, je důležité vzít v úvahu datové typy v operacích, které metoda provádí.Vyhledejte volání
Console.WriteLinea připojte nový prázdný řádek kódu. Pak zadejte následující kód, který zavolá novou metodu a vytiskne výstup:Console.WriteLine($"${vnd} VND = ${VndToUsd(vnd)} USD");
Kontrola práce
V této úloze spustíte naši aplikaci z integrovaného terminálu a ověříte, že váš kód funguje správně. Pojďme na to.
Porovnejte kód s následujícím kódem, abyste měli jistotu, že je správný:
double usd = 23.73; int vnd = UsdToVnd(usd); Console.WriteLine($"${usd} USD = ${vnd} VND"); Console.WriteLine($"${vnd} VND = ${VndToUsd(vnd)} USD"); int UsdToVnd(double usd) { int rate = 23500; return (int) (rate * usd); } double VndToUsd(int vnd) { double rate = 23500; return vnd / rate; }Uložte práci pomocí ctrl + S nebo pomocí nabídky Soubor editoru Visual Studio Code.
V případě potřeby otevřete integrovaný panel terminálu editoru Visual Studio Code.
Na panelu PRŮZKUMNÍK otevřete terminál v umístění složky TestProject, klikněte pravým tlačítkem myši na TestProject a pak vyberte Otevřít v integrovaném terminálu.
Na příkazovém řádku terminálu zadejte příkaz dotnet run.
Ověřte, že váš kód vytvoří následující výstup:
$23.73 USD = $557655 VND $557655 VND = $23.73 USDPokud váš kód zobrazuje různé výsledky, budete muset zkontrolovat kód, abyste našli chybu a aktualizovali ji. Spusťte kód znovu, abyste zjistili, jestli jste problém vyřešili. Pokračujte v aktualizaci a spouštění kódu, dokud váš kód nevygeneruje očekávané výsledky.