從0學Java之變量與計算
首先要了解,任何程序都可以理解為有一些輸入,將這些輸入的數(shù)據(jù)記錄下來,加以計算,然后輸出的過程。
我們已經(jīng)知道用System.out.println可以讓計算機輸出,我們需要知道如何能讓計算機讀到我們輸入的內容,我們還需要知道如何讓計算機能記住我們輸入的內容,以及如何進行相應的計算。
這篇文章的內容將講解以下知識點:
①輸入與輸出,②變量與賦值,③浮點數(shù)的計算以及與整數(shù)之間的轉換
①輸入與輸出
要讀到程序的用戶的輸入,需要先構建一個Scanner的對象,然后讓它來做各種形式的讀的動作,再通過程序輸出出來。
輸入
Scanner in = new Scanner(System.in);
輸出
System.out.println(in.nextLine())
大家把這兩行代碼打到Eclipse里,最好是自己親自打一遍,別復制我的,這里可以用到一個小技巧:輸入Scan之后,按Alt鍵和“/”鍵,系統(tǒng)會自動識別補全代碼。
這時候肯定有人想問:如果我不想讓它單純的復制我說的話怎么辦,我想讓它輸出點其他東西呢
這個時候就需要修改一下程序了,先把“輸入的程序”關掉,注意:不用刪除,光標選到程序,按Alt鍵和“/”鍵
然后把輸出代碼里的 in.nextLine()刪掉,改成你想輸出的內容,比如你想輸出2+3=多少
System.out.println(2+3);
②變量與賦能
要保存讀到的內容,就需要定義各種變量,當我們需要在程序里保存數(shù)據(jù)時,用一個變量保存數(shù)據(jù),它才能參加到后面的計算中,賦能是用變量做各種計算,將結果直接輸出或者保存到變量中。
int Poot=0;
這一行,定義了一個變量,變量的名字是Poot,類型是int,初始值是0,變量定義
的一般形式就是:<類型名稱><變量名稱>,<變量名稱>是一種“標識符”,意思是它是用來識別這個和那個的不同的名字。
標識符有標識符的構造規(guī)則:標識符只能由字母,數(shù)字和下劃線組成,數(shù)字不可以出現(xiàn)在第一個位置,還有Java的關鍵字不可以用做標識符,當然不用專門記,當你不小心寫出的,系統(tǒng)會提示
Poot=0
是一個式子,這里的“=”是一個賦值運算符,表示將“=”右邊的值賦給左邊的變量
int Poot =2+3;
System.out.println(Poot);
③浮點數(shù)的計算以及與整數(shù)之間的轉換
帶有小數(shù)點的數(shù),被叫做浮點數(shù),這樣的數(shù)在Java中如何表達,如何在整數(shù)和浮點數(shù)之間做轉換?我在下面的代碼案例帶大家一起弄
案例:美國人喜歡使用英尺計量單位,他們習慣用幾尺幾寸來報身高,如果他告訴你,他是6英尺1,他身高是一米幾?
數(shù)學是:(6+1?12)×0.3048,但程序應該怎么寫呢?
int Poot; int aoot;
Scanner in = new Scanner(System.in);
Poot = in.nextInt();
aoot = in.nextInt();
System.out.println((Poot+aoot/12)*0.3048);
這個程序:給了兩個變量Poot和aoot,用戶輸入:Poot和aoot,程序輸出:Poot+aoot/12)*0.3048;
這個程序看起來沒有問題,對吧,程序流程沒有問題,程序公式也沒有問題,也沒有報錯,但細心的同學發(fā)現(xiàn),輸出的結果不對,那是為啥呢?
是因為兩個整數(shù)的運算的結果只能是整數(shù),12和12.0在Java中是完全不同的數(shù),12.0是浮點數(shù)
改進辦法(一):Poot+aoot/12)*0.3048;→ Poot+aoot/12.0)*0.3048;
當浮點數(shù)和整數(shù)放到一起運算時,Java會將整數(shù)轉換成浮點數(shù),然后進行浮點數(shù)的運算
改進辦法(二):int aoot; → double aoot;
aoot的定義為int類型的變量,把int換成double,double在Java表示浮點數(shù)的類型
OK,問題又來了,我想讓輸出結果正確的同時還顯示整數(shù),怎么辦?
這個就涉及到浮點數(shù)轉化為整數(shù)的問題了:強制類型轉化。
public static void main(String[] args) { // TODO Auto-generated method stub
int Poot;
double aoot;
Scanner in = new Scanner(System.in);
Poot = in.nextInt(); aoot = in.nextInt();
System.out.println((int)((Poot+aoot/12)*0.3048*100));