A1Biztonságos számbeolvasás
Mikor kell ez?
„Kérje be a felhasználótól…”, „hibás adat esetén kérje be újra”, „a program ne álljon le hibás bevitelre”. Gyakorlatilag minden feladat első lépése.
// Addig kerdez, amig ervenyes szamot nem kap. static int BekerEgesz(string kerdes, int min, int max) { while (true) { Console.Write(kerdes); string? sor = Console.ReadLine(); if (int.TryParse(sor, out int ertek) && ertek >= min && ertek <= max) { return ertek; } Console.WriteLine($"Ervenytelen! Adj meg egy egeszet {min} es {max} kozott."); } } // Hasznalat: int «darab» = BekerEgesz("«Hany elem legyen»: ", «1», «100»);
Illesztési pontok
«darab»– a változó neve a feladat szerint«1»,«100»– az érvényes tartomány; ha nincs korlát, adj megint.MinValueésint.MaxValueértéket- Tizedes számhoz:
int→double,int.TryParse→double.TryParse
Tipikus hibák
ParseaTryParsehelyett: az első hibás beírásnál kivétellel leáll a program.- A tartományellenőrzés kimarad, és a „hány elem” kérdésre
-5is átmegy. - A
while (true)-ból nincsreturn– ilyenkor végtelen ciklus lesz belőle.