Assignment and Operations/zh CN

From Free Pascal wiki
Jump to: navigation, search

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中不能对布尔类型的值做标准算术运算。布尔类型自己有一套特殊的运算。同样,你也不能对字符类型做算术运算。

上一页 目录 下一页