C# dowhile probléma. Hogyan lehet megoldani?
Lehetséges.
Hogyan tudod megoldani:
1) megérted, hogyan működik a do-while ciklus
2) rákeresel, hogyan kérhetsz be billentyűleütést
3) összerakod: meggondolod, mi legyen a ciklusfeltétel, és mi a ciklusmag :)
Imádom ezt az oldalt. Olyan bölcs válaszokat kapok, mint sehol máshol :)
char c;
do
{
program belseje
} while (c == 'y');
Ennyit tudtam virítani, de egy olyan üzenetet kapok, hogy Use of unnassigned local variable 'c'. Nagyon hálás lennék ha valaki érdembe is segítene, elmagyarázná a dolgot és nem csak annyit böfögne be, hogy olvass utána ;)
Pedig nem ártana utánaolvasnod... remélem nem programozó akarsz lenni, mert a programozáshoz elengedhetetlen a kereső használata, és az angol tudás.
A hibaüzenet abból áll, hogy nincs értéke a 'c' változónak, így a null-t nem tudja összehasonlítani az 'y' karakterrel.
A hiba elhárításához a feladatod, hogy ciklusmagban be kell kérned a billentyűzetről egy char típusú értéket, ezt megteheted pl. így:
c = Convert.ToChar(Console.ReadLine());
vagy jobb módszer:
c = Convert.ToChar(Console.ReadKey().KeyChar);
De érdemes minden változó deklarálásakor egy kezdőértéket adni:
char c = 'y';
Így tehát az én megoldásom:
char c = 'y';
do
{
Console.Write("Adjon meg egy karaktert: ");
c = Convert.ToChar(Console.ReadKey().KeyChar);
Console.WriteLine();
}while (c == 'y');
Console.WriteLine("Viszlát!");
Console.ReadKey();
Persze nem vettem figyelembe, hogy van egy switch elágazásod, és ennél ezerszer jobb módszer a ConsoleKeyInfo.
(#1 vagyok)
Igen, mert arra akarunk sarkallni mindenkit (legalábbis én), hogy tegyen valamit a problémája megoldásáért és így 1) tanuljon és fejlessze programozói gondolkodását/kreativitását/eszköztárát, 2) tegyen egy lépést az önállóság felé. Egyébként egy s.k. megoldott probléma sikerélményt is jelent, ami pedig jó dolog.
Ha lelőjük a poént, megírjuk neked mit másolj be a programodba, semmit nem tanulsz. :) Keresni pedig tudnod kell, ha komolyan akarsz programozással foglalkozni.
Node vissza a tárgyhoz. :)
Jó amit írtál.
A c változód azért unassigned, mert nem adtál neki értéket és mégis vizsgálod. Most kéne az, hogy rákeresel, hogyan kell billentyűzetről adatot bekérni. De segítek egy picit, megmondom, hogy a Console osztály statikus metódusait lenne érdemes átböngészned: [link]
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!