Kezdőoldal » Számítástechnika » Programozás » Mit rontottam el ebben a...

Mit rontottam el ebben a kódban?(C#)

Figyelt kérdés

Egy feladatnál megakadtam. Szerettem volna egy int függvényt csinálni amely visszaad egy árat, he megadok neki egy, sajnos char számot. Szótárral próbálkoznék mert azzal egyszerű lenne, viszont a program mindig visszaadja, hogy "not all code path return value".Tudom, hogy ez akkor szokott előfordulni, ha if-nél nem adunk vissza az else ágban semmit, de már végigmentem az összes olyan lehetőségen ami eszembe jutott, de mindenhol ezt írja ki, így inkább nem is írtam az else ágba semmit.

Itt a kód:


static int szam(char hely)

{

Dictionary<char, int> sz = new Dictionary<char, int>();

sz.Add('1', 5000);

sz.Add('2', 4000);

sz.Add('3', 3000);

sz.Add('4', 2000);

sz.Add('5', 1500);

foreach(var item in sz)

{

if (item.Key == hely)

{

return item.Value;

}



}

}



2021. márc. 15. 10:47
 1/2 anonim ***** válasza:
A hibakód igazából elmondja a hibát: nem minden útnak van visszatérési értéke. Akkor jó lenne az elses megoldásod, ha az if a foreachon kívül lenne (nyilván akkor a kód nem működne itt), de a foreachen belül van, és mi van ha az sz-nek nincsen egy darab eleme sem? Akkor nem fog visszaadni semmit, mert a foreach egyszer sem fog lefutni. A ciklus után adj meg egy default visszatérési értéket erre az esetre.
2021. márc. 15. 11:12
Hasznos számodra ez a válasz?
 2/2 A kérdező kommentje:
Jogos, köszönöm így már működik.
2021. márc. 15. 14:15

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!