表達式
當你小時候在學校遇到的令人討厭的數學題時,是否抱怨過,發誓今後再也不學數學了?現在,你可以讓計算機幫你完成這些數學題。本單元的前面提到過,向計算機發出的涉及運算的指令被稱爲表達式。表達式告訴計算機,我們需要加工的數據(操作數)和加工的方法(運算符)。表達式會返回數據加工的結果(表達式的值)。一個常量會一個變量名是最簡單的表達式,它返回它本身的值。我們可以像使用常量和變量一樣使用表達式,甚至可以把它作爲其他表達式的操作數。計算機程序中經常使用表達式完成下面這樣的任務:
1.修改變量的值;
2.在程序中計數;
3.在程序中使用數學公式。
小明從工資中拿出20000元炒股。第一個月由於利好消息刺激,他的股票淨增了500元,不幸的是,第二個月內又虧損了700元,第三個月,小明的股票比上月增長15%,他賣掉了1/2的股票買基金。試問小明現在還有多少錢的股票?
我們可以編寫程序是用來計算小明的股票市值,如下:
01.
/* 小明的股票市值
02.
2008/6/13 */
03.
class
Stock {
04.
public
static
void
main(String[] args){
05.
float
money = 20000f;
06.
System.out.println(
"初始金額:"
+money);
07.
//淨增500元
08.
money = money +
500
;
09.
System.out.println(
"1個月後:"
+money);
10.
//虧損700元
11.
money = money -
700
;
12.
System.out.println(
"2個月後:"
+money);
13.
//增值15%
14.
money = money + money *
0
.15f ;
15.
System.out.println(
"3個月後:"
+money);
16.
//剩餘一半資金
17.
money = money /
2
;
18.
System.out.println(
"期末價值:"
+money);
19.
}
20.
}
上面的程序使用了好幾種算術表達式。請仔細閱讀程序,並試着編譯和執行它。 |
和我們在前面創建的其他程序一樣,Stock程序也只使用了main()語句塊。首先創建money變量,並將其指定爲float類型變量,用於在程序中存放初始金額。然後在下面各個語句中分別描述股票價值的情況和變化。
算術運算符
程序Stock.java使用了4種數學表達式計算股票金額。這些表達式中使用的符號(+、-、*和/)與我們數學課中的算術符號類似。它們有一個專門的術語: 算術運算符。在Java程序中用這些運算符來處理數據運算。運算符接受一個或多個操作數,產生新值,或改變原操作數的值。
下面的代碼將變量money當前值加上500後賦給它本身。創建money時初始值爲20000,因此money的值將變爲20500。
圖1 加法運算符 |
下面的程序片段分別對money變量作減法、乘法和除法運算。要注意的是,對於整型變量,除法運算的計算結果只取整數部分。要想獲得小數的除法結果, 必須將變量定義爲浮點類型。
1.
money = money –
700
;
// money的值爲 19800
2.
money = money + money *
0
.15f;
// money的值爲 22770
3.
money = money /
2
;
// money 的值爲 11385
求餘數的運算在計算機專業術語中叫求模。要獲得除法運算的餘數,可使用%運算符。例如,下面的語句取138除以25的餘數:
1.
int
weight_lost =
138
%
25
;
圖2 求模運算符 |
在同一條語句中還可以組合使用多個表達式,表達式本身可以作爲另一個表達的組成部分,如下例。
1.
money = money + ( money *
3
);
在Java語言中還有一種簡寫形式的運算符,在進行算術運算的同時進行賦值操作,由一個算術運算符和一個賦值號構成,稱爲算術賦值運算符。包括:+=、-=、*=、 /=、%=。 這些運算符等價於先運算後賦值的形式。例如,爲了將4加到變量x,並將結果賦給x,可用x+=4,它等價於x=x+4。又如,x+=2-y等價於x=x+(2-y);x*=2-y等價於x=x*(2-y)
遞增和遞減運算符
遞增遞減運算符在後面的for循環語句中大量使用,採用這類運算符會使得代碼比較簡練,但是如果和別的運算符放在一起,最好用括號括起,以免造成閱讀的困難。例如:
1.
c = a -(++b);
下面的程序片段中分別使用了前遞增和後遞增,gumballs的初始值均爲28,程序運行結束後gumballs的值均爲29。但是,我們查看打印結果,一條語句打印29,另一條語句打印28,是什麼原因呢?我們看看兩者的差異。
圖1 兩種遞增運算符用法 |
根據上面的例子,我們可以得出:++、--在變量前先計算表達式值後增減,++、--在變量後先增減後計算表達式值。
總結Java程序語言中的算術運算符如下表:
表1 算數運算符 |
算術運算符 | 名稱 | 實例 |
+ | 加 | a+b |
- | 減 | a-b |
* | 乘 | a*b |
/ | 除 | a/b |
% | 取模運算(計算餘數) | a%b |
++ | 遞增 | a++ |
-- | 遞減 | b-- |
下面的Java程序將計算並打印x和y的數值,其中有一段代碼不見了。 你的任務是找出下面所列出的程序段與相符的輸出,將相符的兩者聯起來。
|