歡迎訪問我的博客幕庐,同步更新: 楓山別院
基于Java 8
什么是變量
說到變量申屹,我想再考大家一道題:
小米和小明的年齡加起來是5歲渗柿,其中小明3歲用僧,請問小米幾歲蜘腌?
列一下方程:
3 + x = 5必盖,求x的值拌牲。
簡單的一元一次方程,沒有超綱歌粥,小學計算題们拙。
x = 5 - 3
x = 2
在數(shù)學中,在這個方程中阁吝,x就代表2砚婆。如果換了一個方式,x可能就代表其他值了突勇。所以在不同的方程式中装盯,x是會變來變?nèi)サ模皇枪潭ǖ闹导撞觯晕覀儼阉凶鲎兞俊?/p>
但是有一個問題埂奈,就像上面的方程式,小米是2歲定躏,如果是小明跟小紅呢账磺?小明和小黑呢?x就不一定是2
了痊远。
計算機的程序也是一樣的垮抗,假如是寫一個程序,計算上面的年齡碧聪,我們也需要一個變量來代表我們想計算的那個年齡冒版,具體是幾我們并不知道。
因此逞姿,在計算機中辞嗡,我們參考了這個數(shù)學中的概念,也有一個變量的東西滞造,也是差不多的含義续室。
定義變量
但是計算機是一個榆木腦袋啊,它肯定不會理解我們的場景谒养,不知道在上面的應(yīng)用題中挺狰,x
是一個年齡,只能是一個數(shù)字。它只知道她渴,x
代表一個變量达址,具體它是個數(shù)字呢蔑祟?還是字符呢趁耗?還是字符串呢?計算機并不知道疆虚,所以我們必須要明確的告訴它苛败,x
是一個數(shù)字。
我們在前面已經(jīng)學了很多種計算機中的類型径簿,整數(shù)類型罢屈,浮點數(shù)類型,布爾類型篇亭,字符類型缠捌,字符串類型。他們的寫法我們都學會了译蒂。
我們跟計算機約定曼月,整數(shù)類型叫做int
,計算機看到我們輸入的int
之后柔昼,就把變量當做一個數(shù)字來看哑芹。
具體的寫法是:
int x;
int
類型后面緊跟一個變量,名字是x
捕透。x
僅僅是一個名字而已聪姿,就像我們在方程式中,其實可以把變量定義成y乙嘀,都是同一個意思末购。
所以,上面的代碼就是告訴計算機虎谢,我們有一個數(shù)字類型的變量招盲,叫做x
。
我們還可以定義一個叫做y
的數(shù)字嘉冒,如下:
int y;
不知道大家注意到?jīng)]有曹货,后面還有一個英文的分號;
。這是告訴計算機讳推,這個命令結(jié)束了顶籽。計算機這個笨蛋,它也不知道一個命令啥時候結(jié)束银觅,所以我們跟它約定礼饱,遇到;
就表示一個命令結(jié)束了。
學了編程之后,我們的耐心都好多了??镊绪,這是額外的收獲匀伏,畢竟教一個笨蛋做事,還是很鍛煉我們的細心和耐心的蝴韭,更不用說要在成千上萬行代碼中够颠,找到一行代碼錯誤了。
好了榄鉴,我們學會了定義一個數(shù)字類型的變量履磨,那么其他類型呢?
類型名 | 約定 |
---|---|
整數(shù) | int |
浮點型 | double |
字符串 | String |
布爾 | boolean |
字符 | char |
當然我們其實有很多的類型庆尘,上面幾種只是常用的類型而已剃诅,已經(jīng)夠我們應(yīng)付大多數(shù)的使用場景了。
這幾個英文單詞驶忌,就需要大家發(fā)揮死記硬背的本領(lǐng)了矛辕,要把它記住。一字不差付魔!
其中有一個比較特殊的聊品,是字符串類型,String
抒抬。是的杨刨,不是我打錯了,它的首字母確實是大寫的擦剑,不要寫錯了妖胀。
舉一反三,我們會了定義整型的變量了惠勒,其他的都是一樣的寫法赚抡。
int a;
double b;
String c;
boolean d;
char e;
我在上面定義了5個不同類型的變量,大家自己寫一寫纠屋。
給變量賦值
我們在上面學會了定義5種變量涂臣,非常簡單對吧?
但是售担,這其實并沒有什么用赁遗。
int a;
,計算機只是知道了:哦族铆,你告訴我有一個叫做a
的的整數(shù)岩四。
然后呢?哥攘?剖煌?材鹦??如此良辰美景耕姊,你不做點啥嗎桶唐?
比如,告訴計算機這個a
是等于3
茉兰。
int a = 3;
就是這么簡單尤泽!我們告訴了計算機,a
的值是3
邦邦。
好了安吁,我們其實已經(jīng)具備指揮計算機去計算上面那個應(yīng)用題的能力了醉蚁。
計算機這個榆木腦袋其實是會計算加減乘除的燃辖,對吧?如果我告訴它网棍,a
的值是某個算式呢黔龟?
像這樣:
int a = 5 - 3;
完美!上面這句代碼的意思就是:計算機滥玷,請你大聲告訴我氏身,如果變量a
等于5
減3
,那么a
是幾惑畴?蛋欣?
計算機能大聲告訴我們答案嗎?目前還不能如贷,它只能顯示出來陷虎,沒錯!
int a = 5 - 3;
System.out.println(a);
請將以上兩句代碼杠袱,輸入到網(wǎng)頁中尚猿,然后點擊運行,查看結(jié)果楣富。
不出意外的話凿掂,你的計算機會顯示2
。
我們告訴計算機纹蝴,某個變量等于什么的過程庄萎,就叫做給變量賦值,賦予變量一個值塘安,簡稱賦值糠涛。
舉一反三,給其他類型賦值:
String c = "I Love You!";
double b = 3.14;
boolean d = true;
char e = 'A';
是不是非常簡單耙旦?請大家在網(wǎng)頁中練習一下脱羡。
另外萝究,變量的名字不是只能一個字母的,可以是多個字母的锉罐,比如叫age
帆竹,也可用大寫字母,大寫的A
和小寫的a
脓规,計算機認為是兩個不同的變量栽连,具體為什么,繼續(xù)往下看《實驗拓展》扒扔摺秒紧!
String love = "I Love You!";
String apple = "蘋果";
double PI = 3.14;
boolean good = true;
char letter = 'A';
int age = 18;
實驗拓展
在上一節(jié)的實驗中,讓大家計算兩個字符相加挨下,字符比較大小熔恢,字符串相加,居然真的能有結(jié)果臭笆。
其實是我們跟計算機已經(jīng)約定好了某種計算規(guī)則而已叙淌。
字符串相加:把字符串拼接起來
那么,既然約定的是字符串相加是拼接愁铺,為什么字符相加鹰霍,結(jié)果是數(shù)字呢?
這要從很久很久以前說起了茵乱。計算機這個榆木腦袋茂洒,其實說起來,只認識一個東西瓶竭。那就是電督勺!
沒有電,拿它當?shù)首佣枷佑苍谘椤5怯辛穗婄枋希汀盎盍恕薄5且廊恢巧逃邢抟干啵荒苷J識電的兩種狀態(tài)盏触,一種叫做高電平,一種叫做低電平块饺。
給計算機輸入一段電平赞辩,高電平,計算機就記作1
授艰,低電平就記作0
辨嗽。由此,計算機就認識了1
和0
。
但是也就僅此而已了父泳,除了這兩個數(shù)字,其他的斜姥,就智商不夠用了洲押。
因此武花,我們要告訴計算機一個東西,只能用1
和0
去表示杈帐。
舉幾個例子:
A : 01000001
a : 01100001
B : 01000010
b : 01100010
因此体箕,字母其實就是一堆1
和0
,同時這一堆1
和0
挑童,可以看做是數(shù)字累铅。
所以在對字符類型的變量進行加減乘除的時候,就是對該字母對應(yīng)的數(shù)字做計算而已站叼,結(jié)果自然是一個數(shù)字娃兽。
比較大小也是一樣的,比較兩個數(shù)字的大小而已大年,并不是字母之間有大小换薄。
字符串的相加玉雾,在平時的編程中翔试,我們更想要的是拼接起來,而不是計算一個數(shù)字給我們复旬,所以垦缅,我們跟計算機約定了,字符串的相加驹碍,是拼接壁涎,其他的減乘除計算也是沒有約定的,所以計算機不會給你計算志秃,會報告一個錯誤給你怔球。
另外,我們能在計算機中看到的浮还,聽到的竟坛,其實都是1
和0
表示出來的,是不是很神奇钧舌?