今天中级干部以上全部出去开会了,部门其他人都在外地,除了冯姐偶尔过来转悠,没人打扰的感觉真的太棒啦!
今天分上下两部分,上部分是逻辑运算符。
逻辑运算符包括:
&——逻辑与
丨——逻辑或
!——逻辑非
&&——短路与
丨丨——短路或
^——逻辑异或 相同为0,相异为1
说明:逻辑运算符操作的都是boolean类型的变量
开发中 推荐使用&&与||(关于短路与逻辑的走法最好熟悉)
今日代码
//区分 & 与 &&
//相同点:a.二者运算结果相同;b.当符号左边是true时,二者都会执行符号右边的运算。
//不同点:当符号左边是false时,&继续执行符号右边的运算。而&&不再执行符号右边的运算。
class LogicTest{
public static void main(String[] args) {
boolean b1 = true;
b1 = false;
int num1 = 10;
if(b1 & (num1++ > 0 )){
System.out.println("我现在在北京");
}else{
System.out.println("我现在在南京");
}
System.out.println("num1 = " + num1);
boolean b2 = true;
b2 = false;
int num2 = 10;
if(b2 && (num2++ > 0 )){
System.out.println("我现在在北京");
}else{
System.out.println("我现在在南京");
}
System.out.println("num2 = " + num2);//输出num2=10,说明它被短路,num++没进行计算
//区分:|与||
//相同点:运算结果相同;当符号左边是false时,二者都会执行右边运算
//不同点:当符号左边是true时,|会继续看符号右边,||不会看符号右边
boolean b3 = true;
int num3 = 10;
if(b3 | (num3++ > 0 )){
System.out.println("我现在在北京");
}else{
System.out.println("我现在在南京");
}
System.out.println("num3 = " + num3);
boolean b4 = true;
int num4 = 10;
if(b4 || (num4++ > 0 )){
System.out.println("我现在在北京");
}else{
System.out.println("我现在在南京");
}
System.out.println("num4 = " + num4);
}
}
感觉还好。晚上继续看位运算符。
—————————————————————————————
两道题目:
class LogicTest2 {
public static void main(String[] args) {
// 四种题目,分别说明x和y
int x1 = 1;
int y1 = 1;
if(x1++==2 & ++y1==2){
x1=7;
}
System.out.println("x1 = " + x1 + "y1 = " + y1);
int x2 = 1;
int y2 = 1;
if(x2++==2 && ++y2==2){
x2=7;}
System.out.println("x2 = " + x2 + "y2 = " + y2);
int x3 = 1;
int y3 = 1;
if(x3++==1 | ++y3==1){
x3=7;}
System.out.println("x3 = " + x3 + "y3 = " + y3);
int x4 = 1;
int y4 = 1;
if(x4++==1 || ++y4==1){
x4=7;}
System.out.println("x4 = " + x4 + "y4 = " + y4);
面试题2
boolean x = true;
boolean y = false;
short z = 42;
if (y == true);
if((z++==42)&&(y=true))z++;
if((x=false)||(++z==45))z++;
System.out.println("z="+z);
答案是43.如果注释掉第一行,答案是46.