信息学奥林匹克竞赛-Pascal的多种退出语句用法
2015-10-14 11:24
134 查看
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应该注意的地方:要注意所有可能会退出子程序或主程序的地方均要妥善处理好善后工作,比如文件是否关闭,出是否完整等。最后说一句,使用这些语句使得程序结构不止有一个出口,破坏了结构化程序设计的标准控制结构,使程序难以调试(但是往往便于编写),应尽量避免使用,因为它们完全可以用其它语句代替,所以,除非使用这些语句能给编写程序带来较大的方便,可读性不受到影响,值得一用。
相关文章推荐
- Android性能专项测试之Batterystats
- OpenGL C++
- 【Java基础】--Java容器剖析:collection容器
- win8、win8.1回收站怎么添加删除确认框?
- linux下使用vsftpd包按需搭建ftp,留个记录供参考
- 解决 ld:library not found for -lPods-XXX
- 51nod 1294 :修改数组 && HDU 5256:序列变换
- IOS-10-详谈OC(object-c)深浅复制/拷贝-什么情况下用retain和copy,mutableCopy
- 2015-10-14 iOS获取最新设备型号方法
- hive调优——竖表变横表
- Android: ADT 23.0.2
- MySql5.0命令全集
- 51nod 1294 :修改数组 && HDU 5256:序列变换
- c语言日常 10_10练习
- OC学习笔记——OC中的类
- Objective-C内存管理详解——ARC和垃圾回收机制
- 大数据的生态圈 Hadoop,hive,spark
- 反射
- MySQL学习笔记8:函数查询
- 9.Python标准库_当前进程信息 (os包)