当你小时候在学校遇到的令人讨厌的数学题时,是否抱怨过,发誓今后再也不学数学了?现在,你可以让计算机帮你完成这些数学题。本单元的前面提到过,向计算机发出的涉及运算的指令被称为表达式。表达式告诉计算机,我们需要加工的数据(操作数)和加工的方法(运算符)。表达式会返回数据加工的结果(表达式的值)。一个常量会一个变量名是最简单的表达式,它返回它本身的值。我们可以像使用常量和变量一样使用表达式,甚至可以把它作为其他表达式的操作数。计算机程序中经常使用表达式完成下面这样的任务:
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的数值,其中有一段代码不见了。 你的任务是找出下面所列出的程序段与相符的输出,将相符的两者联起来。
|