1、break 是用来退出其所在的循环语句
即 :不论在任何一个循环语句中 执行了 break 的话, 马上退出这个语句。
相当于 :goto这一层循环语句 最末尾一句的下一句。
例如:
var
i:integer;
begin
for i := 1 to 10 do
begin
writeln(i);{1}
break;
writeln(i+1);
end;
readln
end.
执行结果 :
1
可见第一次循环时,执行了{1}句后,执行break,然后马上退出了这个for语句。注意:以上两个语句只对它们所在的那层循环语句起作用,也就是说:如果有多个循环语句相嵌套,其中某一层执行了continue / break 语句,它们并不能影响上面几层的循环语句。
2、exit 是退出当前程序块;
即:在任何子程序中执行exit,那么将退出这个子程序;如果是在主程序中执行exit,那么将退出整个程序。相当于:goto这个程序块的末尾的end例如:试除法判断素数时,一旦整除,就把函数值赋为false ,然后exit;注意: 类似上面的,exit也是只对当前这一个子程序产生作用,如果多重嵌套子程序, 那么其中某个子程序执行了exit以后,将返回到调用它的那个语句的下一个语句。
3、halt:没什么好说的,退出整个程序,Game Over.
例如:搜索时,一旦找到一个解,就打印,然后执行halt,退出整个程序。使用exit ,halt应该注意的地方:要注意所有可能会退出子程序或主程序的地方均要妥善处理好善后工作,比如文件是否关闭,出是否完整等。
最后说一句,使用这些语句使得程序结构不止有一个出口,破坏了结构化程序设计的标准控制结构,使程序难以调试(但是往往便于编写),应尽量避免使用,因为它们完全可以用其它语句代替,所以,除非使用这些语句能给编写程序带来较大的方便,可读性不受到影响,值得一用。