Java语言支持的运算符:
算术运算符:
" + “,” — “,” * “,” / “,” % " ," ++ “,” – "
public class Demo1 {
public static void main(String[] args) {
//二元运算符 + 加 - 减 * 乘 / 除 % 取余
int a = 10;
int b = 20;
System.out.println(a + b);
System.out.println(a - b);
System.out.println(a * b);
System.out.println(a / b); //int是整形,结果0.5取整为零。
System.out.println((double) a / b); //强转可得正确结果
System.out.println(b%a); // b/a 20/10=2...0 取余结果为0
}
}
public class Demo4 {
public static void main(String[] args) {
// ++ 自增 -- 自减 一元运算符
int a = 3;
int b = a++; //这行代码执行后,a先把3赋值给b,再自增,此时b=a=3,a=4
System.out.println(a); //a此时为4
System.out.println(b); //b此时为3
int c = ++a; //这行代码执行后,a先自增 然后再赋值自增后的结果给c
System.out.println(c); //c此时为5
System.out.println(a); //a此时也为5
// 幂运算 2^3 = 2*2*2 = 8 使用math函数
double d = Math.pow(2,3); //使用double数据类型
System.out.println(d); //结果为8.0
}
}
赋值运算符:
" = "
int a = 3; //赋值3给a
关系运算符
“>”, " < ", " >= ", " <= ", " == ", " != " , " instanceof "
public class Demo3 {
public static void main(String[] args) {
//关系运算符返回的结果 :正确 ,错误 (布尔值)。
//会大量跟if一起使用。
int a = 12;
int b = 13;
System.out.println(a>b); //false
System.out.println(a<b); //true
System.out.println(a==b); //false
System.out.println(a!=b); //true
}
}
逻辑运算符:
&&, ||, !
public class Demo5 {
public static void main(String[] args) {
// &&与 ||或 !非(取反)
boolean a = true;
boolean b = false;
System.out.println("a&&b:"+(a&&b)); //两个都为真,结果为真。
System.out.println("a||b:"+(a||b)); //两个有一个为真,结果为真。
System.out.println("!(a&&b):"+!(a&&b)); //运算结果取反。
//短路运算 前一项为假了后面就不执行了。
int c = 5;
boolean d = (c<4)&&(c++<4);
System.out.println(d);
System.out.println(c);
}
}
位运算符:
&, |, ^ , ~ , >>, << , >>> //(了解!!)
public class Demo6 {
public static void main(String[] args) {
/*位运算 & | ^ 转换成二进制进行运算
A = 0011 1100
B = 0000 1101
A&B 0000 1100 两个都为1时结果为1,否则为0
A/B 0011 1101 只要有一个1,结果就为1
A^B 0011 0001 两个相同为0,不相同为1
~B 1111 0010 B取反
*/
//位运算 >> 右移 << 左移
System.out.println(2<<3); //把2往左移3位
/*把2转换为二进制
0000 0010 此为2的二进制表示法
0001 0000 把2往左移了三位就等于16的二进制表示法
*/
}
}
条件运算符
?: if判断用,常用。
public class Demo8 {
public static void main(String[] args) {
//三元运算符 ?:
// x?y:z 如果x==true 则结果为y,否则为z。
int score = 55;
String type = score <60 ?"不及格":"及格"; //把55的成绩跟60比较,返回结果true,而true==不及格。
System.out.println(type);
}
}
扩展赋值运算符:
+= , -= ,*= ,/= (偷懒用)
public class Demo7 {
public static void main(String[] args) {
int a = 10;
int b = 20;
// += -=
a+=b; // a=a+b
System.out.println(a);
a-=b; //a=a-b
System.out.println(a);
//字符串连接符 +
System.out.println(a+b); //顺序问题:
System.out.println("结果:"+a+b); //不进行a+b的运算直接把字符串和ab链接一起
System.out.println(a+b+"结果:"); //先进行运算再连接上字符串
}
}