Java初步语法(2)
赋值运算符:
赋值运算符以符号“=”表示,功能:将右边的操作数所含的值赋值给左边的操作数。
int a=10;
左边的操作数必须是一个变量,而右边的操作数可以是任何表达式,包括变量、常量、有效的表达式。
例如:
int a=10;
int b=5;
int c=a+b;
由于赋值运算符“=”
在处理时会先取得右方表达式处理后的结果,因此一个表达式中若含有两个以上的“=”运算符,会从最右边的“=”开始处理。
注意:在实际开发中不建议使用 x=y=z=6;这种语句。
Java的算术运算符:功能及使用方式如下:
自增和自减运算符
操作源必须是一个整形或者浮点型变量。
++i(–i):在原有的基础上±1后带入
i++(i–):先将i带入后再进行±1。
比较运算符:
- 二元运算符。
- 用于程序中的变量之间,变量和自变量之间以及其他类型的信息之间的比较。
- 比较运算符的结果是Boolean型。(当运算符对应关系成立时为true,不成立时运算结果为false)
比较运算符的 构成和c语言相同且较为简单,笔者就不再在这里一一详说。
逻辑运算符:
相关逻辑运算符表格如下:
注意:逻辑运算符&&与&的区别:
使用&会判断两个表达式;而逻辑运算符&&则是对Boolean类型的类进行判断,当第一个表达式为false时则不去判断第二个表达式,直接输出结果从而减少计算机判断的次数。通常见这种在逻辑表达式中从左端的表达式可以推断出整个表达式的值成为“短路”,而那些始终执行逻辑运算符两边的表达式称为非短路。
“&&”称为短路运算符而“&”称为非短路运算符。
位运算符
位运算符包含“按位与”和“按位或”运算符和只能用于处理整数的操作数。
位运算是完全针对位方面的操作。
1.“按位与”运算符:按位与运算的运算符为&。
运算法则:如果两个整型数据a、b对应位都是1,则结果位才是1,否则为0.如果两者操作数的精度不同,则结果的精度与精度高的操作数相同。
2.“按位或”运算符:运算符为“|”,为双目运算符
运算法则:如果两个操作数对应位都是0,则结果才为0,否则为1.如果两个操作数的精度不同,则结果的精度与精度高的操作数相同。
3.“按位取反”运算(“按位非”运算):运算符为“~”,单目运算符。
运算法则:将操作数二进制中的1修改为0,0修改为1.
4.“按位异或”运算:运算符为“^”,双目运算符。、
运算法则:当两个操作数的二进制表示相同时,结果为0,否则为1.精度不同看精度高的。
5.移位操作:
1. <<:左移。
2. >>:右移。
3.>>>:无符号右移。
左移就是将运算符左边的操作数的二进制数据按照运算符右边操作数指定的位数向左移动,右边移空部分补0.右移则复杂些。当使用”>>”符号时,如果最高位是0,右移空的位就自动填入0,如果最高位是1,右移空的位就填1.
Java提供了无符号右移“>>>”,无论最高位是0还是1,左侧被移空的高位都填入0;
注意:1. 移位运算符适用的类型有byte,short、char、int、long。
2. 移位运算符可以实现整数除以或者乘以2^n 的效果。(一个数左移n位就是将这个数乘以2^n;一个数右移n位,就是除以…)
三元运算符:
三元运算符的使用格式:
条件式?值1:值2
三元运算度的运算规则为:若条件式的值为true,则整个表达式取值为1,否则取值为2.
例:
boolean b=20<45?true:false.
运算符优先级:
- 增量和减量运算
- 算术运算
- 比较运算
- 逻辑运算
- 赋值运算
如果两个运算有相同的优先级,那么左边的表达式要比右边的表达式先被处理。Java的运算级,笔者列表如下:
注意:在编写程序中尽量用括号运算符来限定运算次序,以免产生错误的运算顺序。