Delphi_06_Delphi_Object_Pascal_基本语法_04
这一节描述基本语法中的流程语句: 条件语句 IF语句、 选择语句 Case语句、循环语句 while/repeat/for、以及continue、break语句,还有终止程序
运行流程Exit、Halt方法。
废话不多说,直接贴代码。
{ Delphi语句
1、if语句
2、case语句
3、循环语句
4、用于循环的 continue 和 break 语句
5、程序终止或中止功能 Exit、Halt、Terminate方法
}
program Statement;
{$APPTYPE CONSOLE}
uses
SysUtils,
StrUtils, //引用字符串操作函数
Windows; //引用系统函数
type
charSet = set of ansichar;
var
//注意Delphi2010里面String变量相当于WideString
dirPath:string;
dirAnsiPath:ansistring;
//定义一个整型变量
strVar:string;
nVar:integer;
//定义一个ansichar变量
chVar:ansichar;
charSetVar:charSet;
procedure showExit();
begin
WriteLn('Go into procedure showExit');
Exit();
//由于调用Exit()方法,因此会退出当前函数的执行,下面的语句不会被执行
WriteLn('Go out procedure showExit()');
end;
procedure showHalt();
begin
{
1、Halt可以返回一个错误码,如果不带参数则不能有 ( ) 函数调用符
2、如果用 ( ) 函数调用符,则必须带参数
}
Halt();
end;
procedure showTerminate();
begin
//Terminate() 方法用于终止 GUI程序的执行,这里就不说明啦
end;
begin
//通过系统API函数获取系统路径
GetWindowsDirectory(PWideChar(dirPath),);
dirAnsiPath := dirPath;
dirAnsiPath := 'Window have install in' + dirAnsiPath;
WriteLn(dirAnsiPath);
{ IF语句
1、IF语句的第一种形式
2、如果有else分支,则then后面的 begin/end 语句块 end后面不能有分号
3、如果有else分支,则then后面的语句必须为语句块 begin/end
}
if dirPath = 'C:\windows' then
begin
WriteLn('Windows have install in default partion.');
end
else
begin
WriteLn('Windows have install in default partion.');
end;
{ IF语句
1、不带esle子句的if语句
}
if True then
WriteLn('This is simple if statement');
{
if .... then
...
else if ... then
...
esle if ... then
...
else
...
}
//通过函数 Read 读取数字
Read(nVar);
if nVar = then
begin
WriteLn('status 1');
end
else if nVar = then
begin
WriteLn('status 2');
end
else if nVar = then
begin
WriteLn('status 3');
end
else
begin
WriteLn('other status');
end;
{ case 语句
}
case nVar of
:
WriteLn('*');
:
WriteLn('**');
:
WriteLn('***');
:
WriteLn('****');
else
WriteLn('Input is not 1..4');
end;
{ 循环语句
1、while循环
2、repeat循环
3、for循环
}
nVar := ;
{
1、while循环语句
}
while not ( nVar = ) do //注意 not的优先级比 关闭比较符的优先级要高
begin
Inc(nVar);
WriteLn(nVar);
end;
{ Repet
1、repeat循环语句,类似于C语言中的 Do...while,就是循环体至少会执行一次
}
repeat
WriteLn(nVar);
Dec(nVar);
until nVar = ;
{ for循环语句
1、for有两种形式,
2、语法格式1, 计数器向上增加
for 计数器 := 初始值 to 终值 do
循环体
3、语法格式2, 计数器向下减小
for 计数器 := 初始值 downto 终值 do
循环体
}
for nVar := to do
begin
WriteLn(nVar);
end;
for nVar := downto do
begin
WriteLn('This is downto for loop.');
WriteLn(nVar);
end;
{ 基于集合的for循环语句
1、针对集合中的元素进行循环
2、for I in set do 循环,中的set必须是已经初始化的集合变量
不能使集合类型,或者是未初始化的集合变量
3、这个格式的for循环还可以变量数组、记录、字符串、类和接口
}
//初始化集合变量
charSetVar := ['a'..'z'];
for chVar in charSetVar do
begin
WriteLn(chVar);
end;
{ continue语句
1、continue语句的用法和 C语言中的用法一样,用于中止本次循环
}
for nVar := to do
begin
if nVar <= then
begin
Continue;
end
else
begin
WriteLn(nVar);
end;
end;
{ break语句
1、break语句与 C 语言中个的用法一样
}
while nVar > do
begin
Dec(nVar);
if nVar < then
begin
break;
end
else
WriteLn(nVar);
end;
{ Exit 方法
1、Exit用于退出当前正在执行的程序块,但是不会退出整个程序的执行
2、当Exit用于主程序的程序块的时候就是退出程序
3、在try....finally...调用 Exit 会被当做异常处理
}
showExit();
WriteLn('In Main block.');
{ Halt 方法
1、Halt用于退出当前正在执行的程序
}
ShowHalt();
WriteLn('This statement can never be excuted.');
readln;
readln;
end.
欢迎转载本系列文章,转载请注明来源。
Delphi_06_Delphi_Object_Pascal_基本语法_04的更多相关文章
- Java基础知识二次学习-- 第二章 基础语法与递归补充
第二章 基础语法与递归补充 时间:2017年4月24日10:39:18 章节:02章_01节,02章_02节 视频长度:49:21 + 15:45 内容:标识符,关键字与数据类型 心得:由字母,下 ...
- 我的MYSQL学习心得(一) 简单语法
我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得(四) 数据类型 我的MYSQL学习心得(五) 运 ...
- Swift与C#的基础语法比较
背景: 这两天不小心看了一下Swift的基础语法,感觉既然看了,还是写一下笔记,留个痕迹~ 总体而言,感觉Swift是一种前后端多种语言混合的产物~~~ 做为一名.NET阵营人士,少少多多总喜欢通过对 ...
- 探索C#之6.0语法糖剖析
阅读目录: 自动属性默认初始化 自动只读属性默认初始化 表达式为主体的函数 表达式为主体的属性(赋值) 静态类导入 Null条件运算符 字符串格式化 索引初始化 异常过滤器when catch和fin ...
- [C#] 回眸 C# 的前世今生 - 见证 C# 6.0 的新语法特性
回眸 C# 的前世今生 - 见证 C# 6.0 的新语法特性 序 目前最新的版本是 C# 7.0,VS 的最新版本为 Visual Studio 2017 RC,两者都尚未进入正式阶段.C# 6.0 ...
- Velocity初探小结--velocity使用语法详解
做java开发的朋友一般对JSP是比较熟悉的,大部分人第一次学习开发View层都是使用JSP来进行页面渲染的,我们都知道JSP是可以嵌入java代码的,在远古时代,java程序员甚至在一个jsp页面上 ...
- node.js学习(二)--Node.js控制台(REPL)&&Node.js的基础和语法
1.1.2 Node.js控制台(REPL) Node.js也有自己的虚拟的运行环境:REPL. 我们可以使用它来执行任何的Node.js或者javascript代码.还可以引入模块和使用文件系统. ...
- C#语法糖大汇总
首先需要声明的是"语法糖"这个词绝非贬义词,它可以给我带来方便,是一种便捷的写法,编译器会帮我们做转换:而且可以提高开发编码的效率,在性能上也不会带来损失.这让java开发人员羡慕 ...
- 值得注意的ibatis动态sql语法格式
一.Ibatis常用动态sql语法,简单粗暴用一例子 <select id="iBatisSelectList" parameterClass="java.util ...
随机推荐
- SQL Server2008R2 在windows8上安装,出现“兼容性”和 “执行未经授权的操作”的错误!
本人是windows8.1的操作系统,亲测安装成功 解决方法如下: 1.卸载干净sql Server2008r2,包括注册表内容,删除c盘下的安装路径! 2.关闭防火墙(这步很重要) 3.断开网络连接 ...
- beans.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...
- SharePoint 2016 入门视频教程
之前一直有朋友让自己录一些SharePoint的入门视频,之前没有太多时间,一个巧合的机会收到CSDN学院的邮件,可以在CSDN上发布视频教程,自己就录了一些.说起录视频也是蛮辛苦的,每天下班吃完饭要 ...
- CentOS:ECDSA host key "ip地址" for has changed and you have requested strict checking(转)
原文地址:http://blog.csdn.net/ausboyue/article/details/52775281 Linux SSH命令错误:ECDSA host key "ip地址& ...
- Floyd-Warshall 全源最短路径算法
Floyd-Warshall 算法采用动态规划方案来解决在一个有向图 G = (V, E) 上每对顶点间的最短路径问题,即全源最短路径问题(All-Pairs Shortest Paths Probl ...
- 页面元素坐标和偏移(clientX/pageX/screenX/layerX/offsetWidth/scrollWidth/clientWidth等)相关整理
鼠标事件都是在特定位置发生的,我们可以通过event事件对象的各种属性来获得事件发生的坐标位置,有相对于视口的,有相对于整个文档的,同样页面元素的位置也有相对视口的,也有滚动后的,这些都比较容易混淆, ...
- 如何设计一门语言(七)——闭包、lambda和interface
人们都很喜欢讨论闭包这个概念.其实这个概念对于写代码来讲一点用都没有,写代码只需要掌握好lambda表达式和class+interface的语义就行了.基本上只有在写编译器和虚拟机的时候才需要管什么是 ...
- cookies,sessionStorage和localStorage的区别---web前端sessionStorage和localStorage区别
sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁.因此sessionStorage不是一种持久化的本地 ...
- CI Weekly #6 | 再谈 Docker / CI / CD 实践经验
CI Weekly 围绕『 软件工程效率提升』 进行一系列技术内容分享,包括国内外持续集成.持续交付,持续部署.自动化测试. DevOps 等实践教程.工具与资源,以及一些工程师文化相关的程序员 Ti ...
- WCF学习之旅—WCF中传统的异常处理(十六)
WCF中的异常处理 在软件开发过程中,不可能没有异常的出现,所以在开发过程中,对不可预知的异常进行解决时,异常处理显得尤为重要.对于一般的.NET系统来说,我们简单地借助try/catch可以很容易地 ...