java第三课 运算符和表达式

原创 2012年03月28日 20:22:42
运算符和表达式
¯基本概念
运算符:用于标记对数据执行某种运算的特定符号 。
操作数:参加运算的数据称为运算对象(操作数)。
分类
按运算符的功能,将运算符分为:算术运算符、关系运算符、逻辑运算符、位运算符等
按参与运算的操作数的个数,将运算符分为:单目运算符、双目运算符、三目运算符
表达式:若干操作数(operand)和运算符(operator)按照约定规则构成的一个序列 。
¯算术运算符
加运算符+:连接两个字符串。例如,“abc”+12的结果为“abc12”;”abc”+1+2=?  “abc”+(1+2)=?
Java语言既可对整数取模,也可以对小数取模。例如,16.2%5=1.2
char类型的数据可以进行算术运算,而boolean类型的数据不能进行算术运算。
++(--)运算符的操作数必须是变量,不能是常量或表达式 。++i    或者   i++   (注意两者的区别)
¯关系运算符
      关系运算符用于判断两个操作数的等价性和大小关系,得到的结果为布尔类型,取值为true或false。常用于逻辑判断(if语句或循环)。
例3.2 关系运算符的使用。
¯ 逻辑运算符
      逻辑运算符可以对boolean类型数据进行逻辑上的“与”、“或”、“非”、“异或”等运算,结果仍为boolean类型,通常用于程序的流程控制。逻辑运算符  &(&&)、|(||)、!
注意:运算符(&、|)和运算符(&&、||)的区别
¯位运算符
     位运算符用来对整型(byte、short、int、long)或字符型(char)数据二进制位进行操作,结果为一个整数。
~(按位取反)
格式: ~a 
功能:将操作数a中的二进制位由1变0,由0变1。
例如:int x=2;    ~x=?
&(按位相与)
格式:a & b
功能:两个操作数的相应位都为1,则该位为1,否则为0。 例如, int x=2,y=7;    x & y = ?
|(按位相或)
格式:a | b
功能:两个操作数的相应位中有一个为1,则该位的结果为1。例如,int x=5,y=8;     x | y = ?
^(按位相异或)
格式:a ^ b
功能:两个操作数的相应位相异,则该位的结果为1,否则为0。例如,int x=5,y=8;      x ^ y = ?
>>(按位右移)
格式:a >> b
功能:将a右移b位,右端的低位被舍弃,左端高位补原来的符号位 。例如,byte x=-6;x >>2  = ?
<<(按位左移)
格式:a << b
功能:将a左移b位,右端的低位补0,左端的高位被舍弃。例如,byte x=-6;x << 2  = ?
>>>(无符号右移)
格式:a >>> b
功能:将a右移b位,右端的低位被舍弃,左端的高位补0。例如,byte x=-6;x >>> 2  = ?
注意:移位运算时真正的移位位数不一定是指定的b位。当a为int型(或byte、short、char型)时,系统会先将b对32取模,得到的结果才是真正移位的位数,而当a为long型时,系统先将b对64取模,得到的结果作为真正的移位位数。

例3.5 位运算的综合应用。
分析:方法getOneBit()可以返回参数num的第n-1位。
public int getOneBit(int num,int n){
int i=1 << (n-1);
int nb = num & i;
return nb >> (n-1);
}

¯赋值运算符
格式:变量=表达式
double d = 7.8f;      //合法
int a = 78L;             //非法
int a = (int)78L;       //合法
复合的赋值运算符
+=  -=  *=  /=  %=    &=   |=  ^=  >>=  <<=  >>>=
¯  条件运算符  
格式:表达式1 ? 表达式2 :表达式3
需注意: 表达式1应是boolean类型的表达式;表达式2和表达式3的类型要一致。

ü弹出输入对话框,接收用户输入: JOptionPane.showInputDialog(s)
ü将数字的字符串表示形式转换为整数:Integer.parseInt(s)
üresult = (score>=60) ? "及格" : "不及格"
System.out.println(result);
¯表达式
     表达式(expression)是由若干操作数(operand)和运算符(operator)按照约定规则构成的一个序列。
运算符标明对操作数进行何种操作;
操作数可以是变量、常量或有返回值的方法调用等其他的表达式。
(a-b)/c+4  5>=a  a>3 && a<10 10*max(a,b)  a=10  100
¯表达式中的数据类型转换
  自动类型转换
     当不同类型的常量和变量在表达式中混合使用时,它们最终将被转换为同一类型,然后进行运算。为了保证精度,转换从表示数的范围较小的数据类型到表示数的范围较大的数据类型。


 
强制类型转换
格式:(目标数据类型)变量或表达式
例如,(float)5 / 9 * (f - 32)
     注意:强制类型转换时,由于目标数据类型的取值范围小于待转换数据类型的取值范围,在转换过程中会出现截断,导致高位数据丢失或精度下降。
例3.8将32位整数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
  • 2178

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
  • 912

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

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

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

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

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

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

基础篇—if和三元运算的区别

今天和大家谈谈关于if判断语句和三元运算符的区别,if判断语句相信大家已经用的不能在熟练了,不过我还是啰嗦下其语法: if(表达式){ 执行语句   }   如果条件成立则会进入if的作用域并执行其...
  • qq1723205668
  • qq1723205668
  • 2016年06月13日 22:42
  • 4504

Java笔试题分类总结--位操作

位操作优点:在计算机中所有数据都是以二进制的形式储存的。 位运算其实就是直接对在内存中的二进制数据进行操作,因此处理数据的速度非常快。位操作基础:基本的位操作符有"与"、"或"、"异或"、"取反"、"...
  • daidaineteasy
  • daidaineteasy
  • 2016年04月07日 15:22
  • 978

JAVA 基础语法(三)——三目(条件)运算符以及分支语句

三目(条件)运算符以及分支语句 三目运算符 分支语句 if if…else if…else if switch 三目(条件)运算符1)语法结构(boolean表达式)?(表达式1):(表达式2) 2...
  • qq_34598667
  • qq_34598667
  • 2017年06月07日 11:15
  • 414
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:java第三课 运算符和表达式
举报原因:
原因补充:

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