1.&和&&:
都是逻辑与运算符,都是判断两边同时真则为真,否则为假;但是&&当第一个条件不成之后,后面的条件都不执行了,而&则还是继续执行,直到整个条件语句执行完为止;
2.|和||:
都是逻辑或运算符,都是判断只要有真则为真,否则为假;但是||当第一个条件成立后,后面的条件都不执行了,而|则还是继续执行,直到整个条件语句执行完为止;
eg:有如下代码:请写出程序的输出结果。
public class Test{ public static void main(String[] args) {
int x = 0;
int y = 0;
int k = 0;
for (int z = 0; z < 5; z++)
{ if ((++x > 2) && (++y > 2) && (k++ > 2))
{ x++; ++y; k++; }
}
System.out.println(x + ”” +y + ”” +k); }
}
解答:531
z=0时候,执行++x > 2,不成立,&&后面就不执行了,此时 x=1,y=0,k=0;
z=1时候,执行++x > 2,还不成立 ,&&后面就不执行了,此时 x=2,y=0,k=0;
z=2时候, 执行++x > 2,成立,继续执行 ++y > 2, 不成立 , &&后面就不执行了, 此时 x=3,y=1,k=0;
z=3时候,执行++x > 2,成立,继续执行++y > 2,不成立 , &&后面就不执行了, 此时 x=4,y=2,k=0;
z=4 时候,执行++x > 2,成立,继续执行 ++y > 2, 成立 , 继续执行k++>2 ,不成立,此时仍没有进入for循环的语句中, 但此时 x=5,y=3,k=1;z=5时候,不满足条件了,整个循环结束,所以最好打印时候: x=5,y=3,k=1;
3.移位运算:(3种)
(1)<< : 左移运算符,num << 1,相当于num乘以2
(2)>> : 右移运算符,num >> 1,相当于num除以2
(3)>>> : 无符号右移,忽略符号位,空位都以0补齐
4.java除法:
(1)整数除:除数为0,报算术异常ArithmeticException;
(2)小数除除数为0,输出一个Infinity常量。
(3)对/运算符,如果两个数都是整数,那结果就是整数,如果有余数那余数就丢掉了。
(4)如果其中有一个是小数,那么结果 就是小数,例如 :2.0/5 = 0.4 或 2/5.0 = 0.4
5.java取模运算:
(1)整数取余运算中,模数为0,抛出一个ArithmeticException异常。
(2)小数取余运算中,模数为0,抛出一个NaN常量。