Lazarus Pascal代码运行异常:命令行窗口执行后立即关闭
问题原因
程序在输出年龄分组结果后,直接执行到end.语句结束运行,命令行窗口会随之关闭,导致你来不及查看输出内容。错误分支里有delay和goto跳转回输入环节,所以不会直接关闭,但正确输入后的分支没有任何暂停或等待逻辑。
解决方案
在程序结束前添加暂停逻辑,让窗口保持打开直到你确认查看完结果。最常用的方式是在case块结束后、end.之前添加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; // 等待用户按下回车后再结束程序 readln; end.
你也可以选择添加delay(5000);(延迟5秒)代替readln;,但readln;更灵活,能让你在看完结果后主动按回车关闭窗口。
内容的提问来源于stack exchange,提问作者Samet Çetin
相关产品推荐
相关产品推荐

