free pascal中goto语句能从过程中直接跳到主程序吗?若不能有何简便语句可以代替??

freepascal中goto语句能从过程中直接跳到主程序吗?若不能有何简便语句可以代替??我在把一个goto语句置于一个过程中,想让它跳到主程序,但出现了这种错误,网上... free pascal中goto语句能从过程中直接跳到主程序吗?若不能有何简便语句可以代替?? 我在把一个goto语句置于一个过程中,想让它跳到主程序,但出现了这种错误,网上有人说goto语句不能从过程中跳出,怎么回事?谢谢啦~~ 展开
 我来答
871629510
2011-12-08 · TA获得超过391个赞
知道小有建树答主
回答量:220
采纳率:100%
帮助的人:91.6万
展开全部
当然不能啦
过程是一个子程序,跟主程序是两码事
我有一个办法
不过很难表达
就是你想跳到主程序的那个地方,把你要的一段程序放进过程里去不就行了吗?
还不懂?
给个例子
原来的:
program ex;
label 1;
var
a,b,c:integer;
procedure lzws(x:integer);
begin
xxx
.
.
.
.
.
xxx
goto 1
end;
begin
1:yyy
.
.
.
.
.
.
yyy;
zzz
.
.
.
.
.
.
zzz;
end.
改了以后:
program ex;
var
a,b,c:integer;
procedure lzws(x:integer);
begin
xxx
.
.
.
.
.
xxx
yyy
.
.
.
.
.
.
yyy;
end;
begin
zzz
.
.
.
.
.
.
zzz;
end.
丨大钊丨
2011-12-11 · 超过12用户采纳过TA的回答
知道答主
回答量:30
采纳率:0%
帮助的人:41.3万
展开全部
不能。。goto只能在同一过程或函数中跳转。。。不过真正的程序一般是不用goto也不需要用goto的。。。要跳到主程序直接用 exit 吧。。。
如果要连续跳出多层子程序的话,可以用用全局布尔型控制。。类似 if canjumpout then exit; 这种
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
PCFAN9999
2011-12-08 · TA获得超过3683个赞
知道小有建树答主
回答量:1553
采纳率:50%
帮助的人:505万
展开全部
不能!
如果你直接跳回主程序,那你调用过程时的堆栈状态就全乱啦。
你可以用一个goto 语句跳到过程的最后,让它自动返回主程序去。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zycuse
2011-12-11 · 超过10用户采纳过TA的回答
知道答主
回答量:30
采纳率:0%
帮助的人:17.6万
展开全部
用exit应该能退出
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式