第三章 运算符和表达式 java

原创 2012年03月28日 20:47:33

运算符和表达式

1)基本概念

运算符:用于标记对数据执行某种运算的特定符号。

操作数:参加运算的数据称为运算对象(操作数)。

分类

按运算符的功能,将运算符分为:算术运算符、关系运算符、逻辑运算符、位运算符等

按参与运算的操作数的个数,将运算符分为:单目运算符、双目运算符、三目运算符

表达式:若干操作数(operand)和运算符(operator)按照约定规则构成的一个序列

2)算术运算符

加运算符+:连接两个字符串。例如,“abc”+12的结果为“abc12””abc”+1+2=?  abc+(1+2)=?

Java语言既可对整数取模,也可以对小数取模。例如,16.25=1.2

char类型的数据可以进行算术运算,而boolean类型的数据不能进行算术运算。

++--)运算符的操作数必须是变量,不能是常量或表达式。++i    或者   i++   (注意两者的区别)

3)关系运算符

      关系运算符用于判断两个操作数的等价性和大小关系,得到的结果为布尔类型,取值为truefalse。常用于逻辑判断(if语句或循环)。

3.2 关系运算符的使用。

0.利用&|作运算时,运算符左右两边的表达式都会被执行,最后两表达式的结果再进行与、或运算;

1.而利用&&||作逻辑运算时,如果只计算运算符左边的表达式即可确定与、或的结果,则右边的表达式
将不会执行。

3.3 逻辑运算符的使用。

4)逻辑运算符

      逻辑运算符可以对boolean类型数据进行逻辑上的异或等运算,结果仍为boolean类型,通常用于程序的流程控制。逻辑运算符  &&&)、|||)、!

注意:运算符(&|)和运算符(&&||)的区别

5)位运算符

     位运算符用来对整型(byteshortintlong)或字符型(char)数据二进制位进行操作,结果为一个整数。

1. ~(按位取反)
格式:
功能:将操作数a中的二进制位由10,由01
例如:int x=2;    x=?

2. &(按位相与)
格式:a & b
功能:两个操作数的相应位都为1,则该位为1,否则为0。例如, int x=2,y=7;    x & y = ?

3.|(按位相或)
格式:a | b
功能:两个操作数的相应位中有一个为1,则该位的结果为1。例如,int x=5,y=8;     x | y = ?

4.^(按位相异或)
格式:a ^ b
功能:两个操作数的相应位相异,则该位的结果为1,否则为0。例如,int x=5,y=8;      x ^ y = ?

注意:运算符&|^什么时候实施的是逻辑运算?什么时候实施的是位运算?

5.>>(按位右移)
格式:a >> b
功能:将a右移b位,右端的低位被舍弃,左端高位补原来的符号位。例如,byte x=-6x >>2  = ?

6.<<(按位左移)
格式:a << b
功能:将a左移b位,右端的低位补0,左端的高位被舍弃。例如,byte x=-6x << 2  = ?

7.>>>(无符号右移)
格式:a >>> b
功能:将a右移b位,右端的低位被舍弃,左端的高位补0。例如,byte x=-6x >>> 2  = ?

注意:移位运算时真正的移位位数不一定是指定的b位。当aint型(或byteshortchar型)时,系统会先将b32取模,得到的结果才是真正移位的位数,而当along型时,系统先将b64取模,得到的结果作为真正的移位位数。

位运算的综合应用。

分析:方法getOneBit()可以返回参数num的第n-1位。

public int getOneBit(int numint n){

              int i=1 << (n-1);

              int nb = num & i;

              return nb >> (n-1);

}

6)赋值运算符

格式:变量=表达式
double d = 7.8f;      //合法
int a = 78L;             //非法
int a = (int)78L;       //合法

复合的赋值运算符
+=  -=  *=  /=  %=    &=   |=  ^=  >>=  <<=  >>>=

7)条件运算符  

格式:表达式1 ?表达式2 :表达式3
需注意:表达式1应是boolean类型的表达式;表达式2和表达式3的类型要一致。

条件运算符的使用。

分析:

1.弹出输入对话框,接收用户输入: JOptionPane.showInputDialog(s)

2.将数字的字符串表示形式转换为整数:Integer.parseInt(s)

3.result = (score>=60) ? "及格" : "不及格"

              System.out.println(result);

 

1)表达式

     表达式(expression)是由若干操作数(operand)和运算符(operator)按照约定规则构成的一个序列。

1.运算符标明对操作数进行何种操作;

2操作数可以是变量、常量或有返回值的方法调用等其他的表达式。

(a-b)/c+4  5>=a  a>3 && a<10 10*max(a,b)  a=10  100

3如何正确计算表达式的值?

1)运算符的优先级

2)运算符的结合性

2)表达式中的数据类型转换

1.自动类型转换

     当不同类型的常量和变量在表达式中混合使用时,它们最终将被转换为同一类型,然后进行运算。为了保证精度,转换从表示数的范围较小的数据类型到表示数的范围较大的数据类型。

1(byteshort)intàint

2(byteshortint)longàlong

3(byteshortintlong)floatàfloat

4(byteshortintlongfloat)doubleàdouble

5charintàint

注意:箭头左边表示参与运算的数据类型,操作可以是算术运算、赋值运算等,箭头右边表示转换后进行运行的数据类型

例如long longVar = 12345;    double doubleVar = 1.2f;

           float f = 23456434563L;   

           doubleVar = doubleVar * (12 + longVar);

           int a=doubleVar/100;   //需使用强制类型转换

注意布尔类型不能与任何其它数据类型转换。

 

 

2.强制类型转换

1)格式:(目标数据类型)变量或表达式
例如,(float)5 / 9 * (f - 32)

     注意:强制类型转换时,由于目标数据类型的取值范围小于待转换数据类型的取值范围,在转换过程中会出现截断,导致高位数据丢失或精度下降。

3.832位整数65366强制转换为byte型后,整数的高位被截掉,只剩下低8位,字节数据为86,导致数据丢失。

 

java运算符和表达式

赋值运算符号 一元运算符 算术运算符 关系运算符 递增与递减运算符 public class ...
  • qq_17505335
  • qq_17505335
  • 2016年05月31日 16:19
  • 422

Java学习之三元运算符-if语句

三元运算符package basis.day02; /** * 三元运算符(条件表达式)?表达式1:表达式2;(若为真输出1,若为假输出2) * 其中表达式1和表达式2的数据类型要一致。 * 三...
  • wangligong
  • wangligong
  • 2016年07月11日 19:16
  • 2176

Java中逻辑表达式的短路(先理解运算符的优先级)

在学习Java中逻辑表达式中的短路机制之前, 我们必须明确一点: 就是运算符优先级与执行顺序的问题,  运算符优先级高的表达式在执行时会被视为一个整体,  但是对于除赋值符外的所有二元运算符来说,  ...
  • libertine1993
  • libertine1993
  • 2015年08月09日 18:36
  • 1838

java实现表达式求值(算符优先算法,可计算int,double,float 形数据)

1.首先要实现一个运算符关系表(根据运算符的优先权生成) import java.util.ArrayList; public class RuleTable { //此表可添加 //操作...
  • sgilec
  • sgilec
  • 2015年04月21日 13:16
  • 909

java中的三元运算符没那么肤浅

转自:http://www.mamicode.com/info-detail-1010428.html  最近在带领实习生中遇到很多新手问与三元运算符有关的java题目,多数为代码结果题,少数为应用...
  • DADADIE
  • DADADIE
  • 2016年06月22日 14:29
  • 953

第三章 angular是怎么工作的

在这章中,我们会去讨论angular2中的高级概念,我们需要退一步,这样我们才能看清楚所有这些片段是怎么组装起来的. :fa-info-circle: 如果你使用angular1,你会发现angu...
  • wpengch1
  • wpengch1
  • 2016年05月28日 16:25
  • 548

包含简单科学运算的表达式求值

包含简单科学运算的表达式求值 这个类用来计算算术表达式,返回计算的结果 支持以下运算符号: +(加), -(减), *(乘), /(除), ((左括号), )(右括号), ^(幂), sin(正弦...
  • zhidao8
  • zhidao8
  • 2016年12月12日 11:37
  • 179

第三章 C语言运算符与表达式

C语言运算符与表达式
  • ITTechnologyHome
  • ITTechnologyHome
  • 2016年05月30日 22:10
  • 5216

第三章:表达式与运算符

第三章:表达式与运算符
  • Wangdanting123
  • Wangdanting123
  • 2016年04月05日 22:22
  • 237

第三章运算符、表达式和语句

3.1运算符和表达式3.1.1算术运算符合算术表达式 ①+ - * / % 用算术运算符合括号链接起来的java语法规则的式子叫做算术表达式3.1.2自增和自减 ++ – ++在前,先运算再赋...
  • a15982432330
  • a15982432330
  • 2017年11月15日 12:10
  • 33
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:第三章 运算符和表达式 java
举报原因:
原因补充:

(最多只允许输入30个字)