《java程序设计》第2讲.ppt
文本预览下载声明
Java语言程序设计 第2章 运算和语句 本章总体纲要 数据运算 语句 Java程序实例 数据运算 赋值运算(简单 复合) 算术运算 自增自减运算 (单目) 关系运算 逻辑运算 条件运算 (三目) 其他运算 Java运算符 赋值类运算符 算术运算符 自增自减运算符 关系运算符 布尔逻辑运算符 条件运算符 其他运算符(位运算符 、移位) 1. 赋值类运算符 简单赋值运算符 = 不是相等(==) int j=3; double y=2.0; y=j; (类型自动转换)从简单到复杂的转换 赋值运算也有值 y=j=3; 结合性: 自右至左 1. 赋值类运算符 复合赋值类运算符 包括:+=、-=、*=、/=、=、|=、%=、=、=和= op1 = op1 二元运算符 op2 等价于 op1二元运算符= op2; 例如: a=a+b;等价于a+=b; 2. 算术运算符 算术运算符包括: +(取正), -(取负) (单目运算) +, -, *, /, % (双目运算) 注意事项: 当操作数是定点类型数据时,应当注意运算是否会溢出 int i=123456; i=i*i; //溢出 整数除法:截去余数 7 / 5 结果为 1 考虑除数是否可能为0或很小的数 取模:返回余数,可以对定点或浮点数进行取模运算 7 % 5 结果为 2;15.25%(-0.5)结果为0.25 练习 -7 / 5 = -7 % 5 = 7 % -5 = 5.5 % 1.0 = 3.自增自减运算(单目) 自增(++)和自减(--):操作数必须是变量;有前置和后置两种运算 int n=3; int i=n++, j=n--; // i=3,j=4,n=3 int k=++n, m=--n; // k=4,m=3,n=3 3.自增自减运算 前缀 和后缀, 对变量本身,效果相同;但表达式的值不相同。 i=5; ++i; i--; 运算对象只能是变量,不能是常量或表达式 , 如: 7++;(i+j)– 都是非法的。 4. 关系运算符 关系运算符包括: 、 、=、=、== 和 !=,关系运算生成一个布尔结果。 例如: 1 2; // false 3.5 != 1; // true 51.5 = 23.0; // true 540 = 654; // true 24 == 3*8; // true boolean test1=(10 10); // test1= false; 注意事项: 计算机在表示浮点数以及浮点数运算时存在误差,建议不要直接比较两个浮点数是否相等,而通常改为判断这两个浮点数是否在一定的误差允许范围之内。 例如: (15.2%0.5)== 0.2 // 结果为false (0.2-1.0e-5 15.2%0.5 )(15.2%0.5 0.2+1.0e-5) 5. 逻辑运算符 逻辑运算的操作数必须是布尔型,结果也是布尔型。可以有3种基本操作:与()、或(||)、非(!)。 与C或C++不同的是,不可将一个非布尔值当作布尔值在逻辑表达式中使用。 短路规则 ( 和|| ) 短路规则:一旦能够明确无误的确定整个表达式的值,就不再计算表达式余下的部分了。因此,整个逻辑表达式靠后的部分可能不会计算。 比较: (birthday == true) (++age = 65) (birthday == true) || (++age = 65) 短路规则 ( 和|| ) int a,b,c; a=b=c=1; boolean w; w=++a1||++b++c; a? b? c? w? 答案:a=2,b=1,c=1,w=true; 6. 条件运算符 条件运算符是一个三目运算符,一般形式为: 逻辑表达式 ? 表达式1 : 表达式2 例如: int i = 5; int k = (i=0) ? 1 : -1; 条件运算符的结合性为“自右至左”。 例如: x y ? x : u v ? u : v 等价于 x y ? x : (u v ? u : v) 7. 其他运算符 位运算 移位运算 运算的优先级 () 类型强制转换运算 位运算符和移位 位运算符包括:、|、~、^、 移位运算符有 : 、和 、|、~、^ 按位求与、或、非、异或
显示全部