1_算数运算符
算术运算符需要注意的点:
(1)取模(取余) %
取模运算结果的符号与被模数的符号相同。如果对负数取模,可以把模数负号忽略不记。
例如:5%-2=1。 但被模数是负数则不可忽略。此外,取模运算的结果不一定总是整数。
(2)除号 /
对于除号“/”,它的整数除和小数除是有区别的:整数之间做除法时,只 保留整数部分而舍弃小数部分。
例如:int x=3510;x=x/1000*1000; x的结果是3
(3)字符串连接 +
“+”除字符串相加功能外,还能把非字符串转换成字符串。例如: System.out.println(“5+5=”+5+5); //打印结果是:5+5=55
“+”为字符串连接操作时,只能使用在String与其他数据类型变量之间使用。
2_赋值运算符
赋值运算符:=
扩展:+= -= *= /= %=
赋值运算符需要注意的点:
(1)运算的结果不会改变变量本身的数据类型。
short s1 = 10;
//s1 = s1 + 2;
//编译失败,整数常量默认为int型,与s1相加结果自动类型提升为int型,int型赋值给short型需要强转
s1 += 2;//成功
System.out.println(s1);
(2)变量实现+2的操作,有几种方法?(前提:int num = 10;)
//方式一:num = num + 2;
//方式二:num += 2; (推荐)
(3)变量实现+1的操作,有几种方法?(前提:int num = 10;)
//方式一:num = num + 1;
//方式二:num += 1;
//方式三:num++; (推荐)
3_比较运算符
比较运算符需要注意的点:
(1)比较运算符的结果都是boolean型,也就是要么是true,要么是false。
(2)比较运算符判断是否相等用“==”,不要误写成“=” 。
boolean b1 = false; //区分好==和=的区别。
if(b1 == true)
System.out.println("结果为真");
else
System.out.println("结果为假");
以上代码输出为:
(3)> < >= <= :只能使用在数值类型的数据之间。
(4)== 和 !=:不仅可以使用在数值类型数据之间,还可以使用在其他引用类型变量之间。
4_逻辑运算符
逻辑运算符需要注意的点:
(1)逻辑运算符用于连接布尔型表达式,在Java中不可以写成3<x<6,应该写 成x>3 & x<6 。
(2)“&”和“&&”的区别:
&:左边无论真假,右边都进行运算;
&&:如果左边为真,右边参与运算,如果左边为假,那么右边不参与运算。
【推荐使用&&】
(3)“|”和“||”的区别:
|:左边无论真假,右边都进行运算;
||:如果左边为假,右边参与运算,如果左边为真,那么右边不参与运算。
【推荐使用||】
5_位运算符
位运算符需要注意的点:
(1) 位运算是直接对整数的二进制进行的运算。(位运算符操作的都是整型的数据)
(2)位运算符:
(3) << :在一定范围内,每向左移1位,相当于 * 2。
(4) >> :在一定范围内,每向右移1位,相当于 / 2。
(5)交换两个变量的值:
class BitTest {
public static void main(String[] args) {
int num1 = 10;
int num2 = 20;
System.out.println("num1 = " + num1 + ",num2 = " + num2);
//方式一:定义临时变量的方式
//推荐的方式
int temp = num1;
num1 = num2;
num2 = temp;
//方式二:好处:不用定义临时变量
//弊端:① 相加操作可能超出存储范围 ② 有局限性:只能适用于数值类型
//num1 = num1 + num2;
//num2 = num1 - num2;
//num1 = num1 - num2;
//方式三:使用位运算符
//有局限性:只能适用于数值类型
//num1 = num1 ^ num2;
//num2 = num1 ^ num2;
//num1 = num1 ^ num2;
System.out.println("num1 = " + num1 + ",num2 = " + num2);
}
}
6_三元运算符
三元运算符:(条件表达式)? 表达式1 : 表达式2
三元运算符需要注意的点:
(1)条件表达式的结果为boolean类型
(2) 表达式1 和 表达式2 要求是一致的,即
(3)三元运算符可以嵌套使用
//求n1,n2,m3中的最大数:
int n1 = 10;
int n2 = 20;
int n3 = 30;
int max3 = (((n1 > n2)? n1 : n2) > n3)? ((n1 > n2)? n1 : n2) : n3;
(4)凡是可以使用三元运算符的地方,都可以改写为if-else;反之,不成立。
(5)如果程序既可以使用三元运算符,又可以使用if-else结构,那么优先选择三元运算符。原因:简洁、执行效率高。