基于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
类型后面紧跟一个变量,名字是x
。x
仅仅是一个名字而已,就像我们在方程式中,其实可以把变量定义成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
等于5
减3
,那么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
。由此,计算机就认识了1
和0
。
但是也就仅此而已了,除了这两个数字,其他的,就智商不够用了。
因此,我们要告诉计算机一个东西,只能用1
和0
去表示。
举几个例子:
A : 01000001
a : 01100001
B : 01000010
b : 01100010
因此,字母其实就是一堆1
和0
,同时这一堆1
和0
,可以看做是数字。
所以在对字符类型的变量进行加减乘除的时候,就是对该字母对应的数字做计算而已,结果自然是一个数字。
比较大小也是一样的,比较两个数字的大小而已,并不是字母之间有大小。
字符串的相加,在平时的编程中,我们更想要的是拼接起来,而不是计算一个数字给我们,所以,我们跟计算机约定了,字符串的相加,是拼接,其他的减乘除计算也是没有约定的,所以计算机不会给你计算,会报告一个错误给你。
另外,我们能在计算机中看到的,听到的,其实都是1
和0
表示出来的,是不是很神奇?