各类运算符的小结

发布时间 2023-12-02 08:37:36作者: 涛dream
package operator;

public class demo01 {
public static void main(String[] args) {
int a=111;
int b=1213;
int c=1131;
System.out.println((a+b+c)*a);
System.out.println(a/(double)b);

double d=11111;
double e=11111;
System.out.println(d/e);

}
}

package operator;

public class demo02 {
public static void main(String[] args) {
long a=1111111111;
int b=12;
short c=9999;
byte d=127;
double e=1.11111;

System.out.println(a+b+c+d);//long
System.out.println(b+c+d);//int
System.out.println(c+d);//int
System.out.println(e+b);//double

}
}
package operator;

public class demo03 {
public static void main(String[] args) {
int a=100;
int b=200;
int c=210;
System.out.println(a>b);//false
System.out.println(a<b);//true
System.out.println(a==b);//false
System.out.println(c%a);//取余数 又叫模运算
}
}
package operator;

public class demo04 {
public static void main(String[] args) {
//++ -- 自增,自减 一元运算符
int a=3;
int b=a++; // a++ = a+1
int c=++a;
System.out.println(a);//给b,c赋值的同时a也在自增
System.out.println(b);//a++是先用a再让a自增
System.out.println(c);//++a是先让a自增在获得最终赋予的值

//幂运算 2*3=8
double pow = Math.pow(2, 3);
System.out.println(pow);
}

}
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));//逻辑或运算:有一个变量为真,结果为真
System.out.println("!(a&&b)"+!(a&&b));//如果是真,则变为假,如果是假则变为真

//短路运算
int c=5;
boolean d=(c<4)&&(c++<4);//由于到第一步d=(c<4)就已经短路 所以c++并未运行
System.out.println(d);//false
System.out.println(c);//结果还是5
}
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));//逻辑或运算:有一个变量为真,结果为真
System.out.println("!(a&&b)"+!(a&&b));//如果是真,则变为假,如果是假则变为真

//短路运算
int c=5;
boolean d=(c<4)&&(c++<4);//由于到第一步d=(c<4)就已经短路 所以c++并未运行
System.out.println(d);//false
System.out.println(c);//结果还是5
}
package operator;

public class demo06 {
public static void main(String[] args) {
/*
A = 0011 1100
B = 0000 1101
----------------------
A&B=0000 1100
A|B=0011 1101
A^B=0011 0001
~B =1111 0010

2*8怎么运算才能最快?

2*8=16 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);//即在0000 0010的基础上使1向左移动三位成为0001 0000
}
}
package operator;

public class demo06 {
public static void main(String[] args) {
/*
A = 0011 1100
B = 0000 1101
----------------------
A&B=0000 1100
A|B=0011 1101
A^B=0011 0001
~B =1111 0010

2*8怎么运算才能最快?

2*8=16 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);//即在0000 0010的基础上使1向左移动三位成为0001 0000
}
}
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);

//字符串连接符 + ,String
//面试题
System.out.println(""+a+b);//1020
System.out.println(a+b +"");//30
//二者有何区别??
//String(字符串)在前面会将后面的类型都转换为字符串形式,但不会将前面的类型转换
}
}
package operator;

public class demo08 {
//三元运算符
public static void main(String[] args) {
//x ?y :z
//如果x==true,则结果为y,否则结果为z

int score =30;//定义整数变量score
String a=score<60?"不及格":"及格";//必须掌握 定义一个字符串变量a
System.out.println(a);

int aa=10;
double cc=3;
String ee="tao";
int ff=20;
int gg=aa++;
System.out.println(gg);//10
System.out.println(cc+ff*++aa);//243
}
}