package C_运算;//这是包
public class J_002 {
public static void main(String[] args) {
//&&(与) ||(或) !(取反)
boolean a = true;
boolean b = false;
// 字符串连接符 + 直接加起来不运算的。如 10+20 ==1020 !=30
System.out.println("a&&b:"+(a&&b));
//与 表示a、b都为true,才为true
System.out.println("a||b:"+(a||b));
//或 表示a、b有一个为true,就为true
System.out.println("!(a&&b):"+!(a&&b));
//取反 表示 若a、b都为true则为false、若a、b都为false则为true.
System.out.println("=========");
//短路运算
int c = 5;
boolean d = (c<4)&&(c++<4);
System.out.println(c);
System.out.println(d);//d为什么没有自增能?
//因为 “c<4” 从开始就是错的,而“&&运算”需要两个都对,所以他直接就不算了。这就是短路。
//位运算 & | ^ ~取反(不用两个比较)
/*
A= 0011 1100
B= 0000 1101
============ 不相同时怎么决定取1还是0?0是否表示true,1是否表示false
A&B= 0000 1100 A与B。都为0则为0,都为1则为1;不相同取0
A|B= 0011 1101 A或B。都为0则为0,都为1则为1;不相同取1
A^B= 0010 0001 表亦或。相同则为0,不相同则为1
~B= 1110 0010 完全相反
2*8 == 2*2*2*2 ==16
<< *2
>> /2
0000 0000 ==0
0000 0001 ==1
0000 0010 ==2
0000 0100 ==4
0000 1000 ==8
0001 0000 ==16
//底层运算*2 /2
*/
/**
* 拓张赋值运算
* a+=b; == a=a=b;
* a-=b; == a=a-b;
*/
//三元运算符 ? :
/*
x?y:z
表示如果x的条件满足,则结果为y,如果条件不满足,则结果为z
举例 int a = 50; string b = a<60 ?“不及格”:“及格”
*/
//()优先级很高!
}
}
学自狂神说JAVA