算术运算符和表达式

2021/02/08 11:36
阅读数 109

表达式

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

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。

4-01.gif
图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;

4-02.gif
图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)

递增和递减运算符

除了上面提到的运算符号(+、-、*、/和%),Java语言中还有自增和自减两个算术运算符(++、--)分别表示将变量自增加1,和自减少1。假设a是一个int类型变量,则表达式++a就等价于a = a + 1。“++”、“--”运算符的操作数必须是整型(byte,short,int,long)或浮点型(float,double)变量,它们对操作数执行加1或减1操作。 对“++”运算符和“--”运算符而言,都有两个版本可供选用。“前递增”表示“++”运算符位于变量的前面;“后递增”表示“++”运算符位于变量的后面。类似地,“前递减”意味着“--”运算符位于变量的前面;“后递减”意味着“--”运算符位于变量的后面。对于前递增和前递减(如++a或--a),会先执行运算,再生成值;而对于后递增和后递减(如a++或a--),则先生成值,再执行运算。

递增递减运算符在后面的for循环语句中大量使用,采用这类运算符会使得代码比较简练,但是如果和别的运算符放在一起,最好用括号括起,以免造成阅读的困难。例如:

1.c = a -(++b);

下面的程序片段中分别使用了前递增和后递增,gumballs的初始值均为28,程序运行结束后gumballs的值均为29。但是,我们查看打印结果,一条语句打印29,另一条语句打印28,是什么原因呢?我们看看两者的差异。

4-03.gif
图1 两种递增运算符用法

根据上面的例子,我们可以得出:++、--在变量前先计算表达式值后增减,++、--在变量后先增减后计算表达式值

总结Java程序语言中的算术运算符如下表:

表1 算数运算符
算术运算符 名称 实例
+ a+b
- a-b
* a*b
/ a/b
% 取模运算(计算余数) a%b
++ 递增 a++
-- 递减 b--



下面的Java程序将计算并打印x和y的数值,其中有一段代码不见了。

你的任务是找出下面所列出的程序段与相符的输出,将相符的两者联起来。

01.class Mix{

02.public static void main(String[] args){

03.int x = 0;

04.int y = 30;

05.//缺代码  

06.//缺代码

07.y-= 2;

08.x = y + --x;

09.//打印x和y的值

10.System.out.print(x + “ ”+ y);   

11.}

12.}

 


答案 x=x+3 ---- 30 28; x++ ---- 28 28; y-- ----26 27; y=y*5+x ----147 148



展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部