本文主要是介绍Java运算符,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
运算符
位运算符?(两边的数据都是数字,结果也为数字)
&(与位运算):
System.out.println(3 & 2); //2
|(或位运算):
System.out.println(3 | 2); //3
^(异或位运算):
System.out.println(3 ^ 2); //1
练习?
int i = 1;
int j = 2;
通过某些方式,实现i和j变量的数据的调换?
方式一:
int temp = i;
i = j;
j = temp;
方式二:
i = i ^ j;
j = i ^ j;
i = i ^ j;
~(按位取反):
System.out.println(~3); //-4
注意:符号位都会取反
>>(右移位运算):
System.out.println(3 >> 2);
A >> N --> A / 2^N
4/2 = 2
4 >> 1 = 2 效率高,直接操作的是二进制
<<(左移位运算):
System.out.println(3 << 2);
A << N --> A * 2^N
>>>(无符号右移):
System.out.println(3 >> 2);//0
>>和>>>区别是什么?
>>:如果数据是负数,最左边的符号位是1,右移之后,左边要补1
如果数据是正数,最左边的符号位是0,右移之后,左边要补0
>>>:不管数据是正数还是负数,右移之后,左边都补0
三元运算符?(条件运算符,三目运算符)?
格式:条件表达式 ? 表达式1 : 表达式2;
条件表达式的结果一定是boolean类型
执行流程:
如果条件表达式为true,就会执行表达式1,不会执行表达式2
如果条件表达式为false,就会执行表达式2,不会执行表达式1
练习:
获取两个数的较大值?
int i = 2;
int j = 3;
int max = i > j ? i : j;
System.out.println(max);
注意事项?
1.三元运算符是一个运算符,既然是运算符,就一定会有一个结果,所以呢,
表达式1和表达式2都会得到一个结果,所以表达式1和表达式2中不能是输出语句
3 > 2 ? System.out.println("在吗") : System.out.println("约吗");//格式错误
2.表达式1和表达式2既然会得到一个结果,如果传递给一个变量去接收,该变量的数据类型应该和表达式1
和表达式2的结果的数据类型匹配
int i = 3 > 2 ? 1 : 2;
boolean b = 3 > 2 ? true : false;
double d = 3 > 2 ? 1.1 : 2.2;
double d = 3 > 2 ? 1 : 2;
int c = 3 > 2 ? 'a' : 'b';
这篇关于Java运算符的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!