跳转到内容

Delphi 编程/变量和常量

来自维基教科书,开放的书本,开放的世界

变量在编程中必不可少。没有变量,程序将无法执行很多操作。

变量将名称链接到值。您不能将变量的名称与其值混淆。变量不是常量。它在应用程序执行期间可能会改变。

变量和程序

[编辑 | 编辑源代码]

程序中的变量声明

[编辑 | 编辑源代码]

要在程序中声明变量,您需要编写

  • var
  • 变量名称(例如,var1
  • :
  • 其类型(例如,integer
  • ;

示例

function foo()
var
    var1: integer;
    var2: integer;

begin
// Some instructions
end;

您也可以编写

function foo()
var
    var1, var2: integer;

begin
// Some instructions
end;

变量名的正确语法

[编辑 | 编辑源代码]
错误的标识符 违反规则 正确的标识符
1name 不能以数字开头 name1
name.2 不允许使用点 name_2
-name-3 不允许使用连字符 _name_3
变量名 不允许使用空格 Variable_name
déjà_vu 不允许使用带重音的字符 deja_vu

您无需担心大小写,因为 Delphi 不区分大小写。

显示变量

[编辑 | 编辑源代码]

在应用程序中显示变量很容易。在控制台应用程序中,您使用命令

 WriteLn(variableToDisplay);

.

以下是整个应用程序的结果

program Display_a_variable;

{$APPTYPE CONSOLE}

uses
  SysUtils;
var
  var1:integer;

begin
  var1:= 12
  WriteLn (var1);
  ReadLn;
end.

因此,此代码将显示 12。

备注:如果您不希望显示新行,请使用 Write 函数而不是 WriteLn 。
备注:您可以使用 ReadLn 函数来避免控制台过快关闭,但此函数的实际功能将在下面介绍。
备注:在 GUI 应用程序中,您在可视组件中显示变量。

检索变量

[编辑 | 编辑源代码]

这也很容易。您需要调用 ReadLn(variable); 函数。

您需要首先声明要使用的变量。以下是一段完整的代码

program Retrieve_a_Variable;

{$APPTYPE CONSOLE}

uses
  SysUtils;
var
  var1:integer;

begin
  ReadLn (var1);
end.

在接下来的页面中,我们将看到如何进行变量加法,如何在循环和条件语句中使用变量,等等…

备注:如果您不想在输入后跳过一行,请使用 Read 函数而不是 ReadLn 。

您可以随时在程序中为变量设置值,例如从另一个变量设置。

program Assignment;

{$APPTYPE CONSOLE}

uses
  SysUtils;
var
  sourceVariable:integer;
  targetVariable:integer;

begin
  ReadLn (sourceVariable);
  targetVariable := sourceVariable;
end.

要更改的变量在左侧,复制其值的变量在右侧。不要混淆。

常量类似于变量,但有一点不同:它们在执行期间不能更改其值。

系统常量

[编辑 | 编辑源代码]

这些常量指定了在头文件中定义的所有本机值。

示例

stdout 指向屏幕缓冲区
stdin 指向键盘缓冲区

符号常量

[编辑 | 编辑源代码]

符号常量由开发人员定义。它们像变量一样工作,但声明不同。

要声明常量,您需要在保留关键字const 之后声明它,而不是var

program Declare_constant;

{$APPTYPE CONSOLE}

uses
  SysUtils;
const
  const1 = 12;
var
  var1:integer;

begin
  // Instructions
end.


测试您的知识

编写一个应用程序,该应用程序询问用户其年龄,然后显示它。

答案
program Ask_your_age;

{$APPTYPE CONSOLE}

uses
  SysUtils;
var
  age:integer;

begin
  WriteLn ('How old are you?');
  ReadLn (age);
  Write ('You are ');
  Write (age);
  WriteLn (' year(s) old.');
end.
华夏公益教科书