Mi a (szemantikai) hiba az alábbi C# kódrészben?
Console.WriteLine("Automatikus vagy manuális dátummegadást szeretne alkalmazni? (a/m)");
string válasz=Console.ReadLine().Trim();
while(válasz.ToLower()!="a" || válasz.ToLower()!="m")
{
Console.WriteLine("A válasz nem értelmezhető. Próbálja újra!");
válasz=Console.ReadLine().Trim();
}
if(válasz.ToLower()=="a")
AutomatikusMegadás(dátumok);
else
ManuálisMegadás(dátumok);
for(int i=0; i<dátumok.Length; i++)
Console.WriteLine(dátumok[i,1]+" "+dátumok[i,2]);
Alapvetően az lenne a lényege, hogy kiír random generált, vagy a felhasználótól bekért dátumokat (hónap, nap) attól függően, hogy az az automatikus(a) vagy a manuális(m) megadást választotta.
Ezen kívül a program még leellenőrzi, hogy a felhasználó biztosan értelmezhető választ adott-e, és újra rákérdezi, ha nem.
A probléma az, hogy valamiért akkor sem fogadja el a választ, ha az a két megengedett betű valamelyike.
Mi a hiba?
Nem nagyon tudom hogy jön ide, hogy ciklusról vagy elágazásról van-e szó.
Ilyen hülyeségeket ne magolj be.
#3-as, ne húzd le kérlek a kollégát, ez a helyes megoldás.
Azért jön ide a ciklus/elágazás, mert a while addig fut, amíg igaz, tehát az gyakorlatilag egy while(true) amit írt, mert "a" != "m". Ha ott a while helyett if lenne, akkor az csak a-ra, vagy m-re NEM menne be, többi szövegnél bemenne a hibakezelő részbe.
Amúgy szőrözés, de mint ha nekem hiányozna a DateTime[] dátumok.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!