基本运算符
-
算术运算符
package operator;
public class Demo01 {
public static void main(String[] args) {
// 二元运算符
int a = 10;
int b = 20;
int c = 25;
int d = 25;
System.out.println(a + b);
System.out.println(a - b);
System.out.println(a * b);
System.out.println(c % a);
System.out.println(a / (double)b);
// 当两数相除会产生小数时需要将某个数转换成double,否则会出现计算结果不相符情况
System.out.println("===================================");
long q = 2331231651321L;
int w = 123;
short e = 10;
byte r = 8;
System.out.println(q + r + e + w); // long
System.out.println(w + e + w); // int
System.out.println(e + r); // int
/*
多个数字相加时,如其中某个数据类型为long时,输出结果的数据类型都是long;
如果没有long的数据类型则输出结果都是int类型
*/
}
}
-
关系运算符
package operator;
import java.net.SocketTimeoutException;
public class Demo03 {
public static void main(String[] args) {
// 关系运算符返回的结果:正确、错误的布尔值
int a = 10;
int b = 20;
int c = 21;
System.out.println(a > b); // false
System.out.println(a < b); // true
System.out.println(a == b); // false
System.out.println(a != b); // true
}
}
- 自增、自减运算符
package operator;
public class Demo04 {
public static void main(String[] args) {
// ++ 自增,-- 自减; 一元运算符
int a = 3;
int b = a++;
// 理解为 a = a + 1;++在后表示,执行完此行代码后,先赋值给b再自增
int c = ++a;
// 理解为 a = a + 1;++在前表示,执行完此行代码前,先自增再赋值给c
System.out.println(a); // 输出结果:5
System.out.println(b); // 输出结果:3
System.out.println(c); // 输出结果:5
}
}
-
逻辑运算符
package operator; public class Demo05 { public static void main(String[] args) { boolean a = true; boolean b = false; // 与(and) 符号表示:&& System.out.println("a && b:" + (a && b)); // 逻辑与运算:两个变量都为true,结果才为true // 或(or) 符号表示:|| System.out.println("a || b:" + (a || b)); // 逻辑或运算:两个变量有一个为true,结果才为true // 非(取反) 符号表示:!() System.out.println("!(a && b):" + !(a && b)); // 逻辑非运算:如果是真则为假,如果是假则为真 // 短路运算 int c = 5; boolean d = (c < 4) && (c++ < 4); System.out.println(c); // 输出结果:5 System.out.println(d); // 输出结果:false /* 1. 因为逻辑与运算中两个比较变量都是true时,结果才为true; 2. 比较中的(c < 4)结果是false,所以后续代码(c++ < 4)不执行,导致变量c的值还为5; */ } }
-
位运算符
package operator; public class Demo06 { public static void main(String[] args) { /* 位运算 ———————————————————————— A = 0011 1100 B = 0000 1101 ———————————————————————— A & B = 0000 1100 同位数都为1时则为1,否则为0 A | B = 1100 1101 同位数相同则为1,否则为0 A ^ B = 0011 0001 同位数有1则为1,,否则为0 ~ A = 1100 0011 取变量A的反值 ~ B = 1111 0010 取变量B的反值 */ // << (左移相当于 '*') System.out.println(2 << 3); //输出结果:16 // >> (右移相当于 '/') System.out.println(56 >> 3); //输出结果:7 } }
-
拓展赋值运算
package operator; public class Demo07 { public static void main(String[] args) { // 拓展赋值运算符 int a = 10; int b = 20; a += b; // a = a + b 输出结果:30 a -= b; // a = a - b 输出结果:10 System.out.println(a); // 字符串连接 System.out.println(a + b); System.out.println(""+ a + b ); //输出结果:1020 如字符串拼接符号出现在运算前则会将后面的变量值进行拼接 System.out.println(a + b + "" + a + b); //输出结果:301020 } }
-
三元运算符
package operator;
public class Demo08 {
public static void main(String[] args) {
// 三元运算符 ?:
/*
x ? y : z
如果x=true则结果为y,否则为z
*/
int score = 80;
String type = score < 60 ? "不及格" : "及格";
System.out.println(type);
}
}