跳到正文
IGCSE·Tuition
计算机科学 · 课程

选择合适的数据类型

你知道要存什么值,可是题目问哪种类型合适时,每个选项看起来都行得通。

本页内容
  1. 我该怎样判断用哪种类型?
  2. 例题
  3. 最常见的错误是什么?
  4. 自测
  5. 接下来学什么?

选择数据类型(data type)就是决定一个变量(variable)存哪一类值,以及程序可以对它做什么。考试会直接问某个值的类型,或者给一个小情景,要求你为它声明变量。

本课属于程序结构模块。剑桥风格伪代码里常用五种类型:INTEGER、REAL、STRING、CHAR 和 BOOLEAN。类型名称请到剑桥科目页面核对你考试年份的版本。

我该怎样判断用哪种类型?

对这个值问两个问题。第一,它长什么样:整数、带小数的数、文字、单个字符,还是真/假?第二,程序要拿它做什么:计算、比较、拼接,还是测试?

类型存放内容示例值
INTEGER整数24
REAL带小数部分的数12.50
STRING零个或多个字符“Maya”
CHAR恰好一个字符‘B’
BOOLEANTRUE 或 FALSETRUE

第二个问题能帮你拍板。由数字组成的值不一定是数:如果你不会拿它做计算,它就是文字。

例题

某虚构学校的食堂为每个商品存一条记录。请为每个字段选类型并声明。

  • 商品编码,例如 “0457”
  • 库存数量,例如 36
  • 价格(令吉),例如 3.50
  • 尺寸字母 S、M 或 L
  • 商品是否有清真认证,TRUE 或 FALSE

商品编码。 它由数字组成,但没有人会把两个编码相加。它以必须保留的零开头。所以是 STRING。

库存数量。 库存按整件计算,所以是 INTEGER。

价格。 它有小数部分,所以是 REAL。

尺寸字母。 从固定集合里取恰好一个字符,所以是 CHAR。

是否认证。 只有两种状态,所以是 BOOLEAN。

DECLARE ItemCode : STRING
DECLARE Quantity : INTEGER
DECLARE Price : REAL
DECLARE Size : CHAR
DECLARE IsCertified : BOOLEAN

快速核对:库存总值是 Quantity × Price = 36 × 3.50 = 126.00,结果是 REAL。INTEGER 乘 REAL 得到 REAL。

最常见的错误是什么?

错误答案:“商品编码 0457 由数字组成,所以用 INTEGER。”

把 0457 存进 INTEGER,开头的零就丢了,值变成 457。另一个商品可能真的编码为 457,于是两个不同商品看起来一模一样。

纠正方法就是上面的测试:程序会拿它做计算吗?编码、电话号码或邮政编码只是用来识别事物,从不相加,所以用 STRING。

另一个相关的错误是用 INTEGER 存平均分。平均分 72.5 需要 REAL,否则小数部分会丢失。

自测

1. 为一个班级的学生人数选择类型。

显示答案

INTEGER。学生人数按整数计算。

2. 为邮政编码 08000 选择类型。

显示答案

STRING。它不参与计算,而且开头的零必须保留。

3. 为 (a) 成绩字母 ‘A’ 和 (b) 15 / 4 的结果选择类型。

显示答案

(a) CHAR,单个字符。(b) REAL,因为 15 / 4 = 3.75 带小数部分。

接下来学什么?

变量有了正确的类型,下一个问题是它们能在哪里使用,这部分在局部与全局作用域里讲。受限伪代码追踪训练器可以让你一步步追踪短例子,安全 Python 推理沙盒则用 Python 展示同样的想法。

如果你能说出类型,却在理由上丢分,我们的一对一线上 Computer Science 补习可以和你一起练习作答的表达。

常见问题

为什么电话号码或邮政编码用 STRING 而不是 INTEGER?

因为你不会对它做运算,而且 INTEGER 会丢掉开头的零。邮政编码 08000 会被存成 8000,这已经是另一个值。STRING 会把每个字符原样保留。好用的判断方法是:把这些值相加或求平均有没有意义。

CHAR 和 STRING 有什么区别?

CHAR 只存一个字符,例如 'Y' 或 'A'。STRING 存零个或多个字符,例如 "Y" 或 "Maya"。只有一个字母的 STRING 仍然是 STRING。当值永远只可能是单个字符(例如成绩字母)时才用 CHAR。

什么时候用 REAL 而不是 INTEGER?

当值可能带小数部分时用 REAL,例如价格 12.50 或平均分 72.5。像座位数这样的整数计数用 INTEGER。请到剑桥科目页面核对你考试年份的大纲所列出的数据类型。

更新于:

下一步

如果你选类型靠习惯,而不是看程序要对这个值做什么,一对一老师可以当场追问你的选择,并给你一个能判断对错的小测试。

一小时付费试听课,按所安排老师确认的收费,RM80 起。 其他费用、时间安排及后续课程,在试听课后由家长与老师直接确认。

补习由家长或监护人安排。用 WhatsApp 把这页发给他们,他们就可以替你咨询。

是家长或监护人?在这里咨询

已通过我们的服务帮助 9,000+ 名学生