这是我的pascal代码,它看起来很好,但工作不正常。当它应该将最新的输出打印到屏幕上时,它会直接关闭。
Uses crt;
label durak1;
var
yas: Integer;
begin
durak1:
CLRSCR;
write('YASINIZI BELIRTINIZ : '); READLN(yas);
if (yas <0) or (yas >150 ) then begin
writeln('LUTFEN GECERLI BIR YAS ARALIGI GIRINIZ');
delay(2000);
goto durak1;
end;
case yas of
0,1: writeln('Bebek Yas Grubu');
2..5: writeln('Cocuk Yas Grubu');
6..18: writeln('Genc Yas Grubu');
19..34: writeln('Orta Yas Grubu');
35..59: writeln('Hafif Yasli Grubu');
60..100: writeln('Bi Ayagi Cukurda Yas Grubu');
101..150: writeln('Olmus Yas Grubu');
else
writeln('Yanlis Tuslama');
delay(10000);
goto durak1;
end;
end.
这是一个简单的代码,因为我试图重复我在学校看到的
当用户输入有效年龄时,您缺少额外的ReadLN
调用。现在,在您的案例陈述之后没有ReadLN
调用,因此一旦用户输入有效年龄,您的应用程序就会关闭。
Uses crt;
label durak1;
var
yas: Integer;
begin
durak1:
CLRSCR;
write('YASINIZI BELIRTINIZ : '); READLN(yas);
if (yas <0) or (yas >150 ) then begin
writeln('LUTFEN GECERLI BIR YAS ARALIGI GIRINIZ');
delay(2000);
goto durak1;
end;
case yas of
0,1: writeln('Bebek Yas Grubu');
2..5: writeln('Cocuk Yas Grubu');
6..18: writeln('Genc Yas Grubu');
19..34: writeln('Orta Yas Grubu');
35..59: writeln('Hafif Yasli Grubu');
60..100: writeln('Bi Ayagi Cukurda Yas Grubu');
101..150: writeln('Olmus Yas Grubu');
else
writeln('Yanlis Tuslama');
delay(10000);
goto durak1;
end;
//Add another READLN call here to prevent application from closing instantly when valid age is entered
READLN(yas);
end.
我建议您学习如何使用断点和逐步遍历代码,以便观察代码流。知道如何一步一步地观察代码执行是非常重要的。因为这是确保你的代码以你想要的方式执行的唯一方法