课程导言

【在上节课给出了求长方形面积算法的流程图。流程图的第一个处理流程是声明num1、num2、result三个变量,初学者可能对这三个英文串以及变量这个词语所表达的意义不明白或感到困惑,编写程序更不知道如何入手了,俗话说,难着不会,会者不难,赶快学习本课内容就知道它们所表达的意义了。本节课将揭开算法步骤中英文串和变量的神秘面纱,了解变量的声明和使用方法。通过本课的学习,可以掌握变量的作用、声明和使用。】

求长方形面积算法需要用户输入长度和宽度,输入完毕,用户按下回车键(Enter)后,程序需要存储用户输入的长度和宽度,其响应用户输入的场景如下图所示:

图1 用户输入场景

从上图可以看出,程序内部需要存储用户输入的长度和宽度,为计算面积提供长度和宽度值。那么,用户输入的数据是如何存储的呢?其实程序存储数据有两种方式,一种方法是将数据存储到数据库、文件等载体,该存储方式称为长期或永久存储。另外一种方法是将数据临时存储到计算机内存储器存储单元中,把该存储单元的地址用一个容易记忆的名称来表示,程序可通过名称来访问该存储单元存储的内容。

从求长方形面积算法的步骤可知,程序需要三个存储器的存储单元,用来存储长方形的长度、宽度和面积。为了方便记忆和使用这三个存储单元,给这三个存储单元分别命名为num1、num2、result,num1用来存储长方形的长度,num2用来存储长方形的宽度,result用来存储长方形的面积。

图2 存储单元示意图

上图是num1、num2、result在计算机存储器的位置示意图,可以看出num1、num2、result各占一个存储单元。那么,一个存储单元能存储多大的数值呢?我们知道,计算机中的数据都是以二进制方式存储的,一般来说每个存储单元为8个二进制位,也称为一个字节,每个字节所能表示的最大数值为2的8次方,也就是255。如果该存储单元要表示正负数的话,还需要最高位作为符号位,剩余的7位用来表示数值,此时可表示的最大数值为2的7次方,也就是127。

一个存储单元表示的数值太小了,不满足求长方形面积算法要求。计算机能不能存储更大数值的数呢?当然可以了。只要把连续的存储单元作为一个数值的存储区域就可以了。例如,把连续的4个存储单元用来存储一个数值,4个存储单元就是32个二进制位,这个数值所能表示的最大值为2的31次方,另外1位是符号位,也就是2147483647,在Java语言中,这4个连续存储单元存储的数值被定义为int类型,int类型的存储结构如下图所示。

图3 int类型存储结构示意图

从上图可以看出,num1占了4个字节的存储空间,num1指向该连续存储单元的第一个单元地址。Java语言还定义了其它数值类型,每个数值类型所占用的连续存储单元并不相同。例如byte占一个字节、short占2个字节、int占4个字节。因此在使用存储单元存储数值时,要给出所存储数据的数据类型,计算机会按照给出数据类型分配存储单元。

在Java语言中,类似于num1、num2、result这样的名称也被称为标识符,用来标识存储单元的标识符称为变量。标识符也用于标识类名、方法名。在java语言中使用标识符,必须遵循一定的规则。

① 可以由字母(大写A—Z或小写a—z)、数字(0—9)和_(下划线)组合而成,但不能由数字开头;

② 不能包含除_以外的任何特殊字符,如:%、#、&、逗号、空格等;

③ 不能包含空白字符(换行符、空格和制表符称为空白字符);

④ 标识符不能是Java语言的关键字和保留字,例如class、void、int等关键字;

⑤ 标识符区分大小写,num1和Num2是两个不同的标识符。

⑥ 标识符的命名要有意义,做到见名知意。

下面是正确的标识符命名示例:

width、height、book、result、num、num1、num2、book_price

下面是错误的标识符的命名示例:

123rate(以数字开头)、Book Author(包含空格)、Address#(包含特殊字符)、class(calss是Java关键字)

前面讲了这么多,终于讲到变量了。用标识符命名的存储单元的地址称为变量,变量是用来存储数据的,通过标识符可以获取变量的值,也可以对变量进行赋值。对变量赋值的意思是将值赋给变量,赋值完成后,变量所指向的存储单元存储了被赋的值,在Java语言中赋值操作符为“=”。

当程序使用变量存储数据时,必须要先声明变量,然后才能使用。声明变量的语法如下:

type identifier [ = value][, identifier [= value] ...] ;

其中,type是Java数据类型,例如前面的int。identifier是标识符,也是变量名称,可以声明多个变量,每个标识符之间用英文逗号隔开。value为变量的值,该项为可选项,可以在变量声明时给变量赋值,也可以不赋值。

下面是正确的变量声明示例:

① int result;

② int width,height;

下面是错误的变量声明示例:

① result;

② int width height;

第①个变量声明的错误在于缺少变量类型,第②个变量声明的错误在于声明的两个变量width和height没有用英文逗号隔开。

在声明变量的同时,可以对变量赋值,也称为变量的初始化。变量如果在声明时没有被赋值,则应该在后面的程序中为变量赋值。

下面是声明变量并给变量赋值的示例:

① int result = 30;

② int width=120,height=80;

在上面的语句中,① 声明了int类型的result变量,并将数值30赋值给result变量;② 声明了width和height两个变量,并分别将数值120赋值给width,数值80赋值给height。

下面是为已声明的变量赋值的示例:

int result;

result = 30;

在上面的语句中,第一条语句声明了变量result,在第二条语句中将30赋值给result。

变量弄清楚后,可以回到求长方形面积算法的问题了,算法的第一个步骤是声明num1、num2、result三个变量,用代码实现该步骤:

int num1,num2,result;

看,学会了变量的使用,是不是很容易就把算法的第一个步骤用代码写出来了!

■ 课程小结

1、程序在运行过程中,需要存储一些中间数据。例如用程序求长方形面积时,就需要存储长方形的长度、宽度和计算结果。这些中间数据存储到已经被命名的存储单元中,这些被命名的存储单元称之为变量。

2、标识符用于Java程序中变量、类名、方法等命名的符号,变量名称就是一类标识符,使用标识符必须遵循一定的规范。

3、在程序使用变量前,必须要先声明变量。因为计算机要给声明的变量分配存储单元,因此声明变量时,必须给出数据类型,计算机会按照给出的数据类型决定分配多少个存储单元。例如,声明一个int类型变量时,计算机会分配4个存储单元给声明的变量。

4、变量可以在声明时被赋值,也可以在程序运行过程中被赋值。

■ 思考与练习

1、变量为什么不能随意命名?

2、声明一个int类型的变量,在Java语言中大约占多少个存储单元?

3、在程序运行过程中,可以修改变量的值吗?

举报/反馈

计算机专门存储数据的单元,认识算法的数据存储单元——变量相关推荐

  1. 利用计算机对信息加工的步骤,计算机是通过______的存储程序来______完成数据的加工处理。...

    相关题目与解析 计算机是通过______的存储程序来______完成数据的加工处理. 计算机可以定义如下:计算机是一种能快速而高效地完成信息处理的数字化电子设备,它能按照人们编写 题目来源:1月6日上 ...

  2. 人工智能:算法和数据

    做AI项目,经常要面对两个课题:算法和数据.哪一个比较重要呢?自然是都重要,不过非要对比一下,我选择数据. AI招聘的时候,一般都是招聘算法工程师,特别是很多大厂,非常重视算法的创新性,觉得这样能彰显 ...

  3. 微型表格计算机,excel表格存储数据的最小单位-计算机中存储数据的最小单位是什么?...

    计算机中存储数据的最小单位和存储容量的基本单位... 位(bit)是制数的本单位,存储器存储信息的最小单位,8位二进制数称为字节(byte).当一个数作为一个整体存入或取出时,这个数叫做存储字.存储字 ...

  4. 详解计算机内部存储数据的形式 二进制数

    详解计算机内部存储数据的形式-二进制数 前言 要想对程序的运行机制形成一个大致印象,就要了解信息(数据)在计算机内部是以怎样的形式来表现的,又是以怎样的方法进行运算的.在 C 和 Java 等高级语言 ...

  5. 数据在计算机中存储形式

    数据在计算机中存储形式 考虑到使用二进制等等进行编程,需要了解数据在计算机中的存储形式. 数据在计算机中都是以二进制码存储的. 对于数,是以二进制的补码存储的. 对于有符号的数,其范围是-128~12 ...

  6. 计算机中存储数据最小的单位是什么,计算机中存储数据的最小单位和存储容量的基本单位各是什么?...

    pb呢计算机中存储数据的最小单位:位bit(比特)(BinaryDigits),存放一位二进制数,即0或1,最小的存储单位.存储容量的基本单位是:bit.B.KB.MB.GB.TB.PB.EB.ZB. ...

  7. 计算机科学家 收入,你离年薪100万的数据科学家还差10个“码农”

    <哈佛商业评论>曾评价,"数据科学家"是21世纪最"性感"的工作.性感不性感不知道,但是"有钱"是真的.在某求职网站随便输入&q ...

  8. 计算机通过逻辑电路实现运算,计算机组成与体系结构数据表示与运算算法和逻辑电路实现.ppt...

    计算机组成与体系结构数据表示与运算算法和逻辑电路实现 安阳工学院 第3章 本章主要内容 信息编码.码制转换与检错纠错码 数据表示--常用的信息编码 二进制数值数据的编码与运算算法 数字化编码二要素 数 ...

  9. 计算机内存的基本储存单元,计算机信息存储单元的结构解析

    数据必须首先在计算机内被表示,然后才能被计算机处理.计算机表示数据的部件主要是存储设备:而存储数据的具体单位是存储单元:因此,了解存储单元的结构是十分必要的. (1)"位"(Bit ...

  10. 计算机系统中三级存储器结构,计算机三级存储体系(1)

    ,四小组第二次讨论报告,计算机三级存储体系,first,,Introduction:,一级缓存都内置在CPU内部并与CPU同速运行,可以有效的提高CPU的运行效率.一级缓存越大,CPU的运行效率越高, ...

最新文章

  1. ipa包中图片进行了Compress之后的主要处理和作用
  2. boost::astar_search用法的测试程序
  3. 利用html的header下载文件
  4. OpenOffice介绍
  5. springboot+layui从控制器请求至页面时js失效的解决方法
  6. 哈希策略_优化哈希策略的简介
  7. centos8.2安装ovirt
  8. *第十五周*数据结构实践项目一【验证哈希表及其算法】
  9. 安装Oracle 11.2.0
  10. 内含资源下载|久等了!阿里云技术天团15位专家总结双11实战经验
  11. 文本文档如何运行c语言代码,文本文档代码写好了怎么运行
  12. 正则表达式提取身份证号码
  13. 计算机网络教程第五版|微课版 - 第五章 运输层 - 重要概念【补充】
  14. 【学员问答】中国人民大学与加拿大女王大学中外合作办学金融硕士项目
  15. WiFi接口(1)——模块适配(AW-CM358)
  16. 移动端下拉刷新与页面内滑动冲突问题 iscroll 固定行表头 苹果下拉反弹
  17. 户外直播、移动直播遇到弱网信号差,如何保证流畅又高清画面传输
  18. OPERA-MS:宏基因组二、三代测序混合组装
  19. Jupyter notebook 配置无问题 但就是无法远程访问,解决方法
  20. phpinfo()函数 写法

热门文章

  1. 社交网络关系 mysql架构_社交网络海量用户关系(关系链)设计思考
  2. HDU - 6638
  3. 可能是最通俗的Lempel-Ziv-Welch (LZW)无损压缩算法详述
  4. 皮蛋拌豆腐引发的——沟通管理的思考(丁仿)
  5. 大数据有哪些基本特征?
  6. html表格打印分页无边框_excel怎么显示打印线-表格换页打印没有边框线
  7. mysql 修改 frm_高性能MySQL:只修改.frm 文件
  8. [Angular] - 01 Architecture and workflow
  9. WSL ubuntu ‘Permission denied’的解决方法
  10. 墨刀右键菜单被浏览器右键菜单遮挡导致墨刀右键菜单无法使用