①除号/:如下面代码所示,要想使除运算结果为小数,则参与除运算的两个数必须至少有一个为小数,例如下面的result5:num2先与0.0做加法运算自动提升类型为double型,再进行除运算,结果输出为double型,保留了小数部分。
int num1=12;
int num2=5;
int result1=num1/num2;
System.out.println(result1);//2
int result2=num1/num2*num2;
System.out.println(result3);//10
double result3=num1/num2;
System.out.println(result3);//2.0
double result4=num1/num2+0.0;
System.out.println(result4);//2.0
double result5=num/(num2+0.0);
System.out.println(result5);//2.4
②除模取余运算 %:结果的符号与被模数(%符号前的数字)的符号相同;经常用来判断能否被除尽的情况。
如果对负数取模,可以把模数所带的负号忽略不计,如5%-2=1。但被模数是负数时不可忽略。
③(前)++:先自增1,后运算
(后)++:先运算,后自增1
注意:自增不会改变本身变量的数据类型
(2)赋值运算① = :可以连续赋值
②+=、-=不会改变变量本身的数据类型
例1:
short s1=10;
s1=s1+1;//编译失败,因为s1+1为整型,不能赋给short型
s1+=1;//编译成功,因为+=不会改变变量自身的数据类型
例2:
int i=1;
i *=0.1;
System.out.println(i);//0;i依然是整型,不保留小数部分
i++;
System.out.println(i);//1
(3)比较运算符
比较运算符包含:==、!=、>、<、>=、<=、instanceof
比较运算符的结果是boolean类型;并要注意==和=的区别。
(4)逻辑运算符逻辑运算的结果是boolean型变量。
①逻辑(&)与短路与(&&)的异同:
相同点:二者都为且的关系,当运算符左边为true时,运算符左右两边的表达式都执行。
不同点:当运算符左边为false时,&&运算符右边表达式不再执行。
②短路或(||):符号前面是真,符号后面的运算不再执行。
(5)位运算符位运算符时直接对整数的二进制进行的运算。
位运算符 运算符 运算 范例 << 左移 3<<2=12-->3*2*2=12 >> 右移 3>>1=1-->3/2=1 >>> 无符号右移 3>>>1=1-->3/2=1 & 与运算 6&3=2 | 或运算 6|3=7 ^ 异或运算 6^3=5 ~ 取反运算 ~6=-7结论:1、位运算符 *** 作的都是整型的数据
2、<<:在一定范围内,每向左移1位,相当于*2
>>:在一定范围内,每向右移1位,相当于/2
3.左移都补0,右移原来是负补1,是正补0
(6)三目运算符结构:(条件表达式)?表达式1:表达式2;
说明:①条件表达式的结果为boolean类型;
②如果表达式为true,则执行表达式1;如果表达式为false,则执行表达式2;
③表达式1和表达式2为同种类型,要求一致;
④三元运算符可以嵌套使用。
三元运算符和if-else的联系与区别:
①三元运算符可简化if-else语句
②三元运算符要求必须返回一个结果
③if后的代码块可有多个语句
另外,凡是可以使用三元运算符的地方,都可以改写为if-else语句,反之不成立;如果程序既可以使用三元运算符,又可以使用if-else结构,那么优先选择三元运算符,因为简洁、执行效率高。
最后,对于运算符的优先级问题,可以不用特意去记,可以自行给想要优先运算的地方加小括号。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)