逻辑运算符:代码及注释如下
class LogicText{
public static void main(String[] args){
boolean i = false;
int num1 = 10;
if (i &(num1++ > 3)){
System.out.println("我现在在北京");
}
else{
System.out.println("我现在在南京");
}
System.out.println(num1);
//输出:
//我现在在南京 这里两个条件只要有一个false就是在南京
//11 虽然i为false,就不用管后面的条件是不是对的就可以判断&的结果,但是num1还是完成了++
int num2 = 10;
if (i &&(num2++ > 3)){
System.out.println("我现在在北京");}
else{
System.out.println("我现在在南京");
}
System.out.println(num2);
//输出:
//我现在在南京 这里两个条件只要有一个false就是在南京
//10 因为i为false,所以不管后面的条件是否成立都是else,但是因为是短路与&&,所以num1++ 被短路了不运算
boolean a =true;
int num3 = 10;
if (a |(num3++ > 3)){
System.out.println("我现在在北京");
}
else{
System.out.println("我现在在南京");
}
System.out.println(num3);
//输出:
//我现在在北京 这里两个条件只要有一个true就是在北京
//11
int num4 = 10;
if (a || (num4++ > 3)){
System.out.println("我现在在北京");
}
else{
System.out.println("我现在在南京");
}
System.out.println(num4);
//输出:
//我现在在北京 这里两个条件只要有一个true就是在北京
//10
}
}
位运算符:代码及注释如下:
class BitText{
public static void main(String[] args){
int i = 21;
System.out.println("i<<2="+(i << 2));//84
System.out.println("i>>2="+(i >> 2));//5
System.out.println("i<<26="+(i << 26));//1409286144
System.out.println("i<<27="+(i << 27));//-1476395008
int m = 12;
int n = 5;
System.out.println("m & n ="+(m & n));//4
System.out.println("m | n ="+(m | n));//13
System.out.println("m ^ n ="+(m ^ n));//9
}
}
练习如何可以互换两个变量的值:三种方式代码如下
class Text{
public static void main(String[] args){
int m = 10;
int n = 20;
//方法一:定义一个临时变量 最为推荐
int temp = m;
m = n;
n = temp;
System.out.println("m = "+ m +",n = " + n);
//方法二:站头上 优点:不用定义新的变量 缺点:1可能会超出数据类型 2局限性:只能作用于数字,不能用于字符串
m = m + n;//30
n = m - n;//10
m = m - n;//20
System.out.println("m = "+m + ",n ="+n);
//方式三:位运算符 缺点:只能作用于数字
m = m ^ n;
n = m ^ n;
m = m ^ n;
System.out.println("m = "+ m +",n = " + n);
}
}



