闲聊Java编程入门五:变量


基于Java 8

什么是变量

说到变量,我想再考大家一道题:
小米和小明的年龄加起来是5岁,其中小明3岁,请问小米几岁?

列一下方程:
3 + x = 5,求x的值。

简单的一元一次方程,没有超纲,小学计算题。

x = 5 - 3

x = 2

在数学中,在这个方程中,x就代表2。如果换了一个方式,x可能就代表其他值了。所以在不同的方程式中,x是会变来变去的,不是固定的值,所以我们把它叫做变量。

但是有一个问题,就像上面的方程式,小米是2岁,如果是小明跟小红呢?小明和小黑呢?x就不一定是2了。
计算机的程序也是一样的,假如是写一个程序,计算上面的年龄,我们也需要一个变量来代表我们想计算的那个年龄,具体是几我们并不知道。

因此,在计算机中,我们参考了这个数学中的概念,也有一个变量的东西,也是差不多的含义。

定义变量

但是计算机是一个榆木脑袋啊,它肯定不会理解我们的场景,不知道在上面的应用题中,x是一个年龄,只能是一个数字。它只知道,x代表一个变量,具体它是个数字呢?还是字符呢?还是字符串呢?计算机并不知道,所以我们必须要明确的告诉它,x是一个数字。

我们在前面已经学了很多种计算机中的类型,整数类型,浮点数类型,布尔类型,字符类型,字符串类型。他们的写法我们都学会了。

我们跟计算机约定,整数类型叫做int,计算机看到我们输入的int之后,就把变量当做一个数字来看。

具体的写法是:

int x;

int类型后面紧跟一个变量,名字是xx仅仅是一个名字而已,就像我们在方程式中,其实可以把变量定义成y,都是同一个意思。

所以,上面的代码就是告诉计算机,我们有一个数字类型的变量,叫做x

我们还可以定义一个叫做y的数字,如下:

int y;

不知道大家注意到没有,后面还有一个英文的分号;。这是告诉计算机,这个命令结束了。计算机这个笨蛋,它也不知道一个命令啥时候结束,所以我们跟它约定,遇到;就表示一个命令结束了。

学了编程之后,我们的耐心都好多了😂,这是额外的收获,毕竟教一个笨蛋做事,还是很锻炼我们的细心和耐心的,更不用说要在成千上万行代码中,找到一行代码错误了。

好了,我们学会了定义一个数字类型的变量,那么其他类型呢?

类型名 约定
整数 int
浮点型 double
字符串 String
布尔 boolean
字符 char

当然我们其实有很多的类型,上面几种只是常用的类型而已,已经够我们应付大多数的使用场景了。

这几个英文单词,就需要大家发挥死记硬背的本领了,要把它记住。一字不差!

其中有一个比较特殊的,是字符串类型,String。是的,不是我打错了,它的首字母确实是大写的,不要写错了。

举一反三,我们会了定义整型的变量了,其他的都是一样的写法。

int a;
double b;
String c;
boolean d;
char e;

我在上面定义了5个不同类型的变量,大家自己写一写。

给变量赋值

我们在上面学会了定义5种变量,非常简单对吧?

但是,这其实并没有什么用。

int a;,计算机只是知道了:哦,你告诉我有一个叫做a的的整数。

然后呢?????如此良辰美景,你不做点啥吗?

比如,告诉计算机这个a是等于3

int a = 3;

就是这么简单!我们告诉了计算机,a的值是3

好了,我们其实已经具备指挥计算机去计算上面那个应用题的能力了。

计算机这个榆木脑袋其实是会计算加减乘除的,对吧?如果我告诉它,a的值是某个算式呢?
像这样:

int a = 5 - 3;

完美!上面这句代码的意思就是:计算机,请你大声告诉我,如果变量a等于53,那么a是几??

计算机能大声告诉我们答案吗?目前还不能,它只能显示出来,没错!

int a = 5 - 3;
System.out.println(a);

请将以上两句代码,输入到网页中,然后点击运行,查看结果。
不出意外的话,你的计算机会显示2

我们告诉计算机,某个变量等于什么的过程,就叫做给变量赋值,赋予变量一个值,简称赋值。

举一反三,给其他类型赋值:

String c = "I Love You!";
double b = 3.14;
boolean d = true;
char e = 'A';

是不是非常简单?请大家在网页中练习一下。

另外,变量的名字不是只能一个字母的,可以是多个字母的,比如叫age,也可用大写字母,大写的A和小写的a,计算机认为是两个不同的变量,具体为什么,继续往下看《实验拓展》啊!

String love = "I Love You!";
String apple = "苹果";
double PI = 3.14;
boolean good = true;
char letter = 'A';
int age = 18;

实验拓展

在上一节的实验中,让大家计算两个字符相加,字符比较大小,字符串相加,居然真的能有结果。

其实是我们跟计算机已经约定好了某种计算规则而已。

字符串相加:把字符串拼接起来

那么,既然约定的是字符串相加是拼接,为什么字符相加,结果是数字呢?

这要从很久很久以前说起了。计算机这个榆木脑袋,其实说起来,只认识一个东西。那就是电!

没有电,拿它当凳子都嫌硬。但是有了电,它就“活了”。但是依然智商有限,只能认识电的两种状态,一种叫做高电平,一种叫做低电平。
电平

给计算机输入一段电平,高电平,计算机就记作1,低电平就记作0。由此,计算机就认识了10

但是也就仅此而已了,除了这两个数字,其他的,就智商不够用了。
因此,我们要告诉计算机一个东西,只能用10去表示。

举几个例子:
A : 01000001
a : 01100001
B : 01000010
b : 01100010

因此,字母其实就是一堆10,同时这一堆10,可以看做是数字。

所以在对字符类型的变量进行加减乘除的时候,就是对该字母对应的数字做计算而已,结果自然是一个数字。

比较大小也是一样的,比较两个数字的大小而已,并不是字母之间有大小。

字符串的相加,在平时的编程中,我们更想要的是拼接起来,而不是计算一个数字给我们,所以,我们跟计算机约定了,字符串的相加,是拼接,其他的减乘除计算也是没有约定的,所以计算机不会给你计算,会报告一个错误给你。

另外,我们能在计算机中看到的,听到的,其实都是10表示出来的,是不是很神奇?


文章作者: 枫山别院
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 枫山别院 !
  目录