package operator;
//逻辑运算符
public class Demo05 {
public static void main(String[] args) {
// 与 (and) 或(or) 非(取反)
boolean a = true;
boolean b = false;
System.out.println("a && b:"+(b&&a)); //逻辑与运算:两个变量都为真,结果才为true
System.out.println("a || b"+(a||b)); //逻辑或运算:两个变量有一个为真,责结果才为true
System.out.println("! (a && b):"+!(a&&b)); //如果是真,则变为假,如果是假责为真。
//短路运算
int c =5;
boolean d = (c<4)&&(c++<4);
System.out.println(d);
System.out.println(c);
System.out.println("a && b:"+(b&&a));
System.out.println("a || b"+(a||b));
System.out.println("!(a && b):"+!(a&&b));
}
}
package operator;
import com.sun.xml.internal.ws.api.model.wsdl.WSDLOutput;
class Domo06 {
public static void main(String[] args) {
/*
A = 0011 1100
B = 0000 1101
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
A&B = 0000 1100 A与B 如果A与B 上下进行比较,如果两个都是1,那么他才为1丰泽就是0
A/B = 0011 1101 A或者B 如果对应为都是0那么结果为0,否则为1
A^B = 0011 0001 如果对应为相同则为0否则则为1
~B = 1111 0010 取反
2*8 = 16 2*2*2*2
效率极高!!!
<<左移 *2
>>右移 /2
0000 0000 0
0000 0001 1
0000 0010 2
0000 0011 3
0000 0100 4
0000 1000 8
0001 0000 16
*/
System.out.println(2<<3);
}
}
package operator;
public class Demo07 {
public static void main(String[] args) {
int a = 10;
int b = 20;
a+=b; //a = a+b
a-=b; //a = a-b
System.out.println(a);
System.out.println(b);
//字符串连接符 + , Sting
System.out.println(a+b);
//如果字符串在+号运算符前面,只要出现了 Sting类型他就会把操作数和另一个操作数都转换成Sting在进行连接
System.out.println(""+a+b);
//如果字符串在+号后面运算符后面, 字符串前面的数字依旧进行运算
System.out.println(a+b+"");
}
}
package operator;
//三元运算符
public class Demo08 {
public static void main(String[] args) {
// x ? y : z
//如果X==true, 则结果为Y, 否则结果为z
int score = 50;
String type = score <60 ?"不及格":"及格";
// if
System.out.println(type);
}
}