主题:怎样退出循环
victor000000
[专家分:30] 发布于 2007-03-11 11:19:00
在pascal中有没有相当于C++中continue,break的语句。
回复列表 (共24个回复)
沙发
longcjx [专家分:50] 发布于 2007-03-11 14:38:00
有break
exit
板凳
lgr7000 [专家分:230] 发布于 2007-03-11 18:34:00
break 退出此次循环
exit 退出整个循环
halt 退出程序
3 楼
编程黑客 [专家分:1660] 发布于 2007-03-11 22:19:00
break 是用来退出其所在的循环语句
即 : 不论在任何一个循环语句中 执行了 break 的话, 马上退出这个语句。
相当于 : goto 这一层循环语句 最末尾一句的下一句。
例如:var i : integer;
begin
for i := 1 to 10 do
begin
{1} writeln(i);
break;
writeln(i+1);
end;
readln
end.
执行结果 :
1 可见 第一次循环 时 , 执行了{1}句 后 , 执行 break ,然后马上退出了这个for语句。 {*****} 注意 : 以上两个语句 只 对 它们所在的 那层循环语句 起作用,
也就是说 : 如果有多个 循环语句 相嵌套, 其中 某一层 执行了
continue / break 语句, 它们并不能影响上面几层的
循环语句。
exit 是退出当前程序块;
即 : 在任何子程序 中执行 exit , 那么 将退出 这个子程序;
如果是在 主程序中执行 exit , 那么将退出整个程序。
相当于 : goto 这个程序块 的 末尾 的 end 例如 : 试除法判断素数时,一旦整除,就把函数值赋为false ,然后exit;
{******}注意 : 类似上面的 , exit也是只对当前 这一个 子程序产生作用,
如果多重嵌套子程序 , 那么其中某个子程序执行了exit以后,
将返回到 调用它的那个语句 的下一个语句。
halt : 没什么好说的,退出整个程序,Game Over.
例如 : 搜索时, 一旦找到一个解,就打印,然后执行halt,退出整个程序。使用exit , halt 应该注意的地方:
要注意所有可能会退出 子程序或主程序 的地方 均要妥善处理好善后工作,
比如 文件是否关闭 ,输出是否完整等。最后说一句 , 使用这些语句 使得程序结构不止有一个出口,破坏了结构化程序设计的 标准控制结构 , 使程序难以调试 (但是往往便于编写),应尽量避免使用,因为它们完全可以用其它语句代替,
所以,除非使用这些语句 能给 编写程序 带来 较大的方便,
且可读性不受到影响,才值得一用(其实我用的也不少,呵呵) .......................................
halt {^_^}
4 楼
小田甜 [专家分:3910] 发布于 2007-03-14 15:16:00
也有continue
6 楼
游侠UFO [专家分:1200] 发布于 2007-03-17 21:18:00
[quote]break 退出此次循环
exit 退出整个循环
halt 退出程序[/quote]
exit是退出函数,或过程类似于C里面的return
只不过TP里面exit不能带参数 FP里面可以带参数,表示函数返回值
7 楼
privatecathy [专家分:10] 发布于 2007-03-22 21:33:00
让你的循环变量,大于循环终值
这招有点狠
8 楼
LSQ [专家分:220] 发布于 2007-05-05 10:36:00
如果想要退出循环,变量就设为大于循环终值的任意一个数
或用
break 退出此次循环
exit 退出整个循环
halt 退出程序
9 楼
万里长城 [专家分:340] 发布于 2007-05-10 18:21:00
建议你先保存,然后摁Alt+X退出程序。
10 楼
逍遥兔. [专家分:0] 发布于 2007-07-12 19:51:00
用break
我来回复