Basic Pascal Tutorial/Chapter 1/Assignment and Operations/zh CN

From Lazarus wiki
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

български (bg) Deutsch (de) English (en) español (es) français (fr) 日本語 (ja) 한국어 (ko) русский (ru) 中文(中国大陆)‎ (zh_CN)

1E - 赋值和运算符 (原作者: Tao Yue, 状态: 未更改)

一旦你声明了一个变量,你就可以往里面存储值。这就叫做赋值。

把一个值赋给一个变量的语法如下:

variable_name := expression;

注意,Pascal跟其它一些直接用等号作为赋值符号的语言不同,Pascal用冒号后面跟一个等号来表示赋值,这跟大多数计算机代数系统相似。

上面的expression(表达式)既可以是单独一个值:

some_real := 385.385837;

也可以是一个算式:

some_real := 37573.5 * 37593 + 385.8 / 367.1;

Pascal中的数学运算符有:

运算符 运算功能 操作数类型 结果类型
+ 加法或一元正号 real或integer real或integer
- 减法或一元负号 real或integer real或integer
* 乘法 real或integer real或integer
/ 实数除法 real或integer real
div 整除 integer integer
mod 求模(除法取余) integer integer

divmod只能用于整数/实数整数都可以用,但是结果都是real类型的。其他的运算符都可以同时用于实数整数。当出现实数整数的混合运算时,结果都是real类型的,不然结果可能会丢失部分数据。这也是为什么Pascal要分别为普通除法和整数除法使用不同的运算符。7 / 2 = 3.5 (real),但是7 div 2 = 3(作为余数,7 mod 2 = 1)。

每个变量都只能被赋予同一类型的值。因此,你不能把一个real类型的值赋给一个integer类型的变量。然而,某些特定类型的值可以转换为更高的数据类型。最常见的就是把一个integer类型的值赋给一个real类型的变量。假设有下面的变量定义:

var
  some_int : integer;
  some_real : real;

执行下面的语句:

some_int := 375;
some_real := some_int;

some_real中存储的值将会是375.0

把一种数据类型变为另外一种数据类型涉及到类型转换。现代Pascal编译器支持类似于C语言的显示类型转换,但语法稍微有些不同。不过类型转换通常用于低级别的操作或是面对对象编程,所以初学者不太需要用到。

在Pascal语言中,减号可以用作负号,同样地加号也可以用作正号,但由于正号是默认的,所以一般不用写。

不要把两个运算符挨着写:

some_real := 37.5 * -2;

你可能感觉直接这样乘以-2比较好,但是Pascal编译器就会搞不清楚到底该乘还是该减。你可以用圆括号来避免这种问题:

some_real := 37.5 * (-2);

计算机里的运算顺序和优先级跟数学中一样。乘法和除法(* / div mod)运算先于加法和减法(+ -),而括号总是最优先的。所以3.5*(2+3)的结果是17.5.

Pascal中不能对布尔类型的值做标准算术运算。布尔类型自己有一套特殊的运算。同样,你也不能对字符类型做算术运算。

上一页 目录 下一页