Feltételes kilépés egy programbol, hogyan?
Én anno ezt úgy csináltam, hogy a menü kiírása egy ciklusban futott. Amikor kiválasztott egy menüpontot az user, akkor csináltam valamit, amivel ha végeztem, akkor nem léptem ki a ciklusból, hanem újra kiírta a menüt és megint lehetett választani.
A kilépés pedig olyan volt, hogy amikor kiválasztották, akkor jött a kérdés, ha azt mondta h nem lép ki, akkor maradtam a ciklusban, ha azt mondta kilép, akkor kiléptem belőle és bezáródott a program.
Ha jól tudom FPC-ben is van halt;, akkor:
Repeat
.
.
programod
.
.
Writeln; {ez csak takarít, ha az utolso kimenet write lett volna}
Write('Kilépel more? (/K)');
Until Upcase(readkey) = 'K'; {upcase() hogy nagybetut csinaljon belole, igy egyszerubb a feltetel}
ez egyszerüen kilép a ciklusból, ha K-t nyomsz, itt egy kicsit bonyulultabb, ez csak az U-t és a K-t fogadja el válaszul:
var valaszchar:char;
Repeat
.
.
.
Programod;
.
.
.
Writeln; {mint emlitettem :D}
Repeat
Writeln('Kilépel more? (U/K'); { ha ezt az elotte levo Repeat ele rakod, akkor csak egyszer kerdezi meg, igy minden rosz leutesnel megkerdezi ujra.}
valaszchar:=readkey;
Until upcase(valaszchar) in ['U','K'];
Until upcase(valaszchar) = 'K';
ha NEM ez a progid vége, akkor ezt még csapd hozzá a végéhez:
if upcase(valaszchar) = 'K' then halt;
jah, es ezekhez a cuccokhoz (readkey, writeln) kell a CRT unit :)
amugy a halt; az a parancs ami fogja és csapot-papot otthagyva kilép
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!