C#, konzolalkalmazás, ellenőrzött adatbekérés, nagyon gusztustalan a lenti megoldás?
Kérlek finoman, ha magamtól rájönnék, miért nem jó, nem lenne kérdésem.
A cél, hogy adott tartományon belüli egész számokat fogadjon csak el, pl 5 és 8 között.
int min = 5, max = 8;
Console.WriteLine($"Kérem a számot {min} és {max} között!");
int num;
while (!int.TryParse(Console.ReadLine(), out num) || num < 5 || num > 8)
{
Console.WriteLine("Nem megfelelő a megadott adat, kérem, próbálja újra!");
}
Miért ronda? :(
Miért jobb külön változózni stb?
Csak mert tényleg nem értem.
olvashatóbbá kell tenni
SOLID elveknek vagy Clean Code-nak nézz utána, hasznos lesz :)
Az előbb említett hibákon kívül még az is hiba, hogy az IF feltételében nem OR vizsgálatot kéne használnod hanem AND-et.
int num = 0;
while(num < 5 || num > 8){
Console.WriteLine("Kérek egy számot 5 és 8 között");
}
Az se szép, ha a Console.ReadLine() külön van és egy ideiglenes temp fájlba rakom stringként, és a do while feltételében van a TryParse()?
Vagy
bool isNumber = int.TryParse(Console.ReadLine(), out num), és egy do-while feltételeihez berakom az isNubert is?
Ilyenkor a konzolra való kiíratáshoz hogyan vizsgálom, hogy először történik-e a bekérés?
int i = 0;
Majd (pszeudokód-szerűség jön):
I == 0 ? Írd ki kérem a számot : írd ki rossz volt a szám
Öm, tényleg nem használtam őket.
Máshol vagyok és épp szabad időm van, eszembe jutott megkérdezni, de Visual Studio nincs előttem.
Viszont logikailag a fentit valósítottam meg otthon, tehát ha nem jó, nem jó :(
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!