java表达式10 3的值_Java入门指南-03 操作符与表达式

一、赋值操作符

在 Java 语言里,等号称为赋值操作符。

例:a = b + 100;

注意,不要把 Java 语言理解为数学。在 Java 里,这个等号的作用是“赋值”,即右侧的值赋给左边的变量。

要求:

等号左边必须是变量

将等号右边表达式的值,赋给左边的变量

1、区分初始值与赋值

在定义一个变量的时候,可以指定初始值。

例如:int a = 10; // 定义一个变量 a,初始值为 10

int b; // 如果未指定初始值,则初始值为 0

2、理解赋值操作的过程

赋值操作分 2 步运行:①先计算等号右侧的式子的值,②再把右侧的值赋给左侧的变量。

例如:

int a = 10;

a = a + 99; // 重点理解这一行的赋值操作

System.out.println("a 的值为 " + a );

我们来分析一下 a = a + 99 这一行, 实际上计算机是分两步来运算出结果的:

(1) 首先,计算出左侧表达式(a+99)的值,为 109

(2) 然后,将右侧的值赋给左侧的变量,即 a=109

3、组合赋值操作符

赋值操作符可以和其他操作符组合起来使用,例如:

a += b;

a -= b;

a *= b;

a /= b;

a %= b;

规则都是一样的,相当于: a = a + b

示例:

int a = 10;

a += 12; // 相当于 a = a + 12

System.out.println("现在 a 为: " + a);

所以,a 的最终值为 22

二、常量

在 Java 里,用 final 表示常量。类比一下:变量,是可以变化的量;常量,是不能变化的量。所以,以下代码会报错:

final double PI = 3.14; // 定义常量 PI,初始值为 3.14

PI = 3.0; // 错误! PI 是 final 修饰的,其值不能修改!

三、自增操作符

在 Java 语言里,++ 称为自增操作符。例:

int a = 10;

a++;

System.out.println("现在 a 为: " + a);

其中,a ++ 可以理解为 a = a +1 。所以,最终 a 的值为 11。

1、前置自增与后置自增

自增操作符有 2 种写法,写在前面的称为前置自增,写在后面叫后置

自增。例如:后置自增:

int b = 10;

a = b++ ;

后置自增时,先把 b 的值代入式子运算,之后再对 b 自增加 1。所以,

最终的结果 a 为 10, b 为 11。

前置自增:

int b = 10;

a = ++b ;

前置自增时,先对 b 自增加 1,然后再代入式子运算。

2、自减操作符

同样的,还有一套自减操作符 -- ,例如:

a = b --;

和自增没区别,就不详细讲解。

四、操作符的优先级

当一个表达式里有多种操作符时,就是明确操作符的优先级。也就是说,哪些部分先运算,哪些部分后运算。比如:

a - b * 10 / 2

这个表达式看起来很简单。之所以我们会觉得简单,因为我们已经事先知道了算术符的优先级(小学就学过了嘛!)。但是,当把多种 Java 操作符用在一起时,就不那么简单的。比如:

a>10 && !ok

对于这样的式子,存在关系操作符 > 和逻辑操作符 && ! 。要经行运算,就必须明确优先级。在这里,关系操作符比逻辑操作符的优先

级高,而逻辑非又与逻辑与的优先级高。所以,它的运算顺序是这样的:

( (a>10) && (!ok) )

先运算 a>10 再运算 !ok ,再进行逻辑与的运算。在 Java 语言里,操作符约有几十种,想要记住它们的优先级顺序是不

太容易的。但是大家可以放心的是,我们并不需要强记这些优先级,而只是需要知道几种常用的操作符的优先级就足够了。

提示:在搞不清优先级顺序的时候,请使用小括号来显示指定顺序。

五、类型转换操作符

在整型与浮点型之间,允许类型转换。例如:

double a = 12.77;

int b = (int) a;

System.out.println("b 的值:" + b);

其中,

a 是 double 型

b 是 int 型

b = a 赋值时,要求左右两侧的类型相同。所以,把 a 转换在 int型。也就是说,一个 double 类型可以转成 int 类型。把这对小括号称

为类型转换操作符。反过来,一个 int 类型也可以转换成 double 类型。例如:

int c = 10;

double d = (double) c;

1、类型转换时的数据损失

在 double -> int 的转换过程中,数据可能发生损失。

例如:double a = 12.77;int b = (int) a; 转换后的结果为 12,即小数部分被截断。

反过来,在 int -> double 的转换过程中,数据不会损失。例如:

int c = 10;

double d = (double) c;

2、显式转换与隐式转换

在类型转换的过程中,如果没有风险和数据损失,就可以把类型转换符省略。例如:

int c = 10;

double d = c; // 省略 (double) 转换符

在 d=c 的过程中,发生了隐式的类型转换,相当于double d = (double)c ;

所以,称之为隐式转换。即自然而然的、没有任何风险的转换。

3、注意事项

(1) 小数转整数时,小数部分被截断。注意不是四舍五入!

(2) 默认其他类型是不能转换的。

例如,boolean 与 int 是不能相互转换的,boolean k = true;int a = (int) k; // 错!别乱写!

六、结尾

今天讲了算术运算符、关系运算符、逻辑运算符,还有一些讲了操作符、自增自减、操作符的优先级等。下一篇,我们来讲顺序结构、分支结构、循环结构。

更多精彩,请关注公众号

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值