ad

打开《Java语言程序设计与应用》_从基础向熟练进发_2.1.4 运算符与表达式

admin 134 2023-10-25

【摘要】 本书摘自《Java语言程序设计与应用》一书中第2章,第1节,由徐俊武编著。

2.1.4 运算符与表达式

运算是对数据进行加工的过程,描述各种不同运算的符号称为运算符 (operator),参与运算的数据称为操作数(operand),运算符与操作数的数据类型 必须匹配才能进行相应运算,否则将产生语法错误。根据操作数的个数可将运 算分为单目运算、双目运算和三目运算。单目运算中,运算符可以出现在操作数 的左边或右边;双目运算中,运算符出现在两个操作数的中间。

表达式(expression)是用运算符将操作数连接起来的符合语法规则的运算 式。表达式的 BNF (巴科斯-瑙尔范式)语法定义如下:

< 表 达 式 > : : = < 项 > + < 项 > | < 项 > - < 项 > | < 项 >

<项>::=<因子>×<因子> | <因子>/<因子> | <因子> <因子>::=<常数> | (<表达式>)

<常数>::=<数字> | <数字><常数>

打开《Java语言程序设计与应用》_从基础向熟练进发_2.1.4 运算符与表达式

< 数 字 > : : = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9

在表达式中,操作数可以是常量、变量及方法调用,操作数的数据类型必须 与运算符相匹配,变量必须已具有值。

表达式表示一种求值规则,描述对哪些数据以什么次序进行什么样的操作。 运算规则是:按运算符优先级从高到低的顺序进行运算;当遇到圆括号时,先计 算圆括号内的子表达式,再将子表达式的结果值参与括号外的其他运算。表达 式的结果取决于其中的操作数、运算符及运算次序。

表达式是递归定义的。表达式中的圆括号用于改变运算次序,圆括号中的 表达式称为子表达式。表达式可以嵌套,表现为圆括号的嵌套。

Java 语言对操作数类型、运算符性质、运算结果数据类型及运算次序都做 了严格规定,程序员必须严格遵循这些规定,不能自定义运算符。2.1.4.1 运算符

根据运算特性,Java 运算符主要有算术运算符、关系运算符、逻辑运算符、 位运算符、赋值运算符、强制类型转换符、条件运算符、括号运算符、点运算符、逗 号运算符和 new, 这些运算符与 C++ 语言定义的基本相同,另增加字符串连接 运算符(十)和 instanceof运算符[20]。

(1)算术运算符

算术运算完成数学中的加、减、乘、除四则运算。算术运算符(arithmetic operator)中,单目运算符有4个:+(正)、 - (负)、++(自增)、 —— (自减);双 目运算符有5个:+(加)、 - (减)、*(乘)、/(除)、%(取余)。其中,十、 一、*、/ 实现加、减、乘、除四则运算,%求两个操作数相除的余数。这些运算符适用于数 值类型,包括整数、字符和浮点数类型。"/"根据操作数类型实现整除或实数除 法运算,即两个整数相除为整除,有浮点数参与的相除为实数除法。例如:

7/2

7.0/2

7%2

-7%2

//整除,取商值,运算结果是整数3

//实数除法,运算结果是浮点数3.5

余数为整数1

//结果为-1,结果符号与被除数相同

两个整数整除后的商和余数满足下列数学公式(设 a、b 为两个整数): a=(a/b)*b+a%b

运算符十+和— 一实现变量的增1或减1运算,两个+或一之间不能有空格。 ++和—一仅作用于整数类型变量和字符类型变量,不能用于表达式。例如:

int i=10;

i++ //i值在原值上增1

i-- //i值在原值上减1

++(i- 1) //语法错误

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:《零基础Python 从入门到精通》_让你学得轻松_16.1.3 什么是IP地址?
下一篇:《基于Kubernetes的容器云平台实战》_了解最新技术前沿_1.4.2 Docker 原理
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×