Kezdőoldal » Számítástechnika » Programozás » C# dowhile probléma. Hogyan...

C# dowhile probléma. Hogyan lehet megoldani?

Figyelt kérdés
Programomban egy switch elágazás van és ezt szeretném egy olyan dowhile ciklusba rakni, aminek az lenne a feladata, hogy az "Y" lenyomásával újraindítsa a programot, más gomb lenyomásával viszont lépjen ki a programból. Ez lehetséges és ha igen, hogyan?
2013. febr. 17. 22:02
 1/6 anonim ***** válasza:

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 :)

2013. febr. 17. 22:09
Hasznos számodra ez a válasz?
 2/6 anonim ***** válasza:
Ez nem nehéz, bármelyik kezdőknek szóló könyvből elsajátítható az egész művelet.
2013. febr. 17. 22:21
Hasznos számodra ez a válasz?
 3/6 A kérdező kommentje:

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 ;)

2013. febr. 17. 22:26
 4/6 anonim ***** válasza:

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.

2013. febr. 17. 23:01
Hasznos számodra ez a válasz?
 5/6 anonim ***** válasza:

(#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]

2013. febr. 17. 23:02
Hasznos számodra ez a válasz?
 6/6 A kérdező kommentje:
Köszönöm szépen ennyit szerettem volna. Igen, tudok angolul és a keresőt is ismerem, de gondoltam ha van olyan oldal hogy www.gyakorikerdesek.hu akkor használom azt és reménykedtem benne, hogy itt találok segítőkész embereket! ;)
2013. febr. 17. 23:06

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!