Ezt hogy kell megírni a c#-ban?
Még kezdő programozó vagyok
Írtam egy kódot, hogy a bevitt számok közötti páros számok értékét adja össze a program. Ezt meg is tudtam írni viszonylag hamar. Viszont azt már napok óta nem tudom megírni, hogy hogyan kezelje ha a user a következő feltételeket adja meg:
1.Nem számot ad.
2. Az első szám nagyobb mint a második.
3. Bármelyik szám negatív.
Eredetileg azt is kellett volna, hogy az első szám nem páros, de azt úgy oldottam meg, hogy nem kettesével hanem egyesével léptettem és a végén elosztottam 2-vel, majd mennyi a maradék.
Eddig így néz ki a kódom:
namespace ConsoleApp3
{
internal static class Program
{
internal static void Main(string[] args)
{
int sum = 0;
int szam1 = Convert.ToInt32(Console.ReadLine());
int szam2 = Convert.ToInt32(Console.ReadLine());
for (int a = szam1; a <= szam2; a++)
{
if (a % 2 == 0)
if (szam1 > szam2) ;
MassageBox.Show("Az első érték legyen kisebb!");
}
{
sum = sum + a;
}
Console.Write($"A megadott értékek közti páros szémok összege: {sum}");
Console.ReadKey();
}
}
}
Szia!
Több alapvető hibád is van, ezeket orvosolni kell.
A Te kódodban ez egy nagy hiba:
if (szam1 > szam2) ;
Az if, else, else if, while, for, stb kulcsszavaknál (vezérlési szerkezeteknél) a FEJ UTÁN TILOS pontos vesszőt tenni. Ez gyakorlatilag egy láthatatlan hibát generál, amit nehéz észrevenni.
Máskor használj kódmegosztó oldalt, ha kérdést teszel fel ide. Ilyenek a pastebin, hastebin, stb oldalak.
internal kulcsszó nem kell. Ennek nézz utána kicsit jobban.
stringek esetében neked most nincs szükséged a $ előtagra. Ha formázott szöveget akarsz kiírni kezdésként ajánlom a string.Fromat(...) függvényt.
És satöbbi és satöbbi. Na de itt a helyes kód:
hastebin.com/olofujesar.cs
1.Nem számot ad.
if(string.IsNullOrEmpty(szam1)) // ha nem írt be semmit
2. Az első szám nagyobb mint a második.
Ezt már kezelted, csak ne a ciklusba tedd, hanem rögtön a beolvasás után. Vagy csinálhatod azt is, hogy ha rossz sorrendben vannak, akkor megcseréled.
3. Bármelyik szám negatív.
Ezt nem értem, az miért baj?
"FEJ UTÁN TILOS pontos vesszőt tenni"
Nem tilos, csak akkor tudni kell, hogy a hozzá tartozó utasítás egy üres utasítás. Ciklusoknál elő szokott fordulni, hogy mondjuk nincs ciklusmag, mert a szükséges tevékenység a ciklus fejében megvalósul.
Amúgy itt valóban hiba.
Köszönöm a válaszokat!
Én egyébként azt tapasztalom, hogy magát a logikát értem hogy mit hogyan kell megírni, de a szintaktikát viszont nem ismerem eléggé. Gondolom ez majd a rutinnal fog jönni.
"Én egyébként azt tapasztalom, hogy magát a logikát értem hogy mit hogyan kell megírni, de a szintaktikát viszont nem ismerem eléggé."
Akkor vhogy mégsem érted.
A szendvicskészítés logikáját is érti mindenki, csak leprogramozásnál vannak gondok.
Mondjuk az, hogy mit teszel a ciklusmagba, vagy mit mi után hajtasz végre, az nem szintaktikai kérdés. Próbáld először simán csak leírni valami pszeudokóddal, hogy mit szeretnél, és jó esetben a fő problémák már ott kibuknak. Valahogy így:
szam1 <- beolvas
szam2 <- beolvas
ha (izé) akkor hozé
ciklus belépő feltétel (..)
__ezt csinálja
__azt csinálja
ciklus vége
stb.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, 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!