运算符 | 类 |
---|---|
() | 括号运算符 |
[] | 方括号运算符 |
!、+ (正号)、- (负号) | 一元运算符 |
~ | 位逻辑运算符 |
++、– | 递增与递减运算符 |
*、/、% | 算术运算符 |
+、- | 算术运算符 |
<< 、>> | 位左移、右移运算符 |
>、>=、<、<= | 关系运算符 |
==、!= | 关系运算符 |
& (位运算符AND) | 位逻辑运算符 |
^ (位运算符号XOR) | 位逻辑运算符 |
|(位运算符号 OR) | 位逻辑运算符 |
&& | 逻辑运算符 |
|| | 逻辑运算符 |
?: | 条件运算符 |
= | 赋值运算符 |
运算注意事项
几个操作数之间有一个数据类型为long,则输入类型也为long类型
如果都double类型,输出结果都是double
如果没有long类型,输入结果都为int类型
常用的运算符(++和–)
++:自增,一元运算符
–:自减,一元运算符
例:
public class Demo05 {
public static void main(String[] args) {
int a = 3;
int b = a++;//执行完这段代码后a加1
//a = a + 1
//a = a + 1
int c = ++a;//执行完这段代码前a加1
System.out.println(b);
System.out.println(c);
}
}
所以上面的结果为:
3
5
自减与自增效果一样
幂运算
用Math类里面的pow()函数
例:求2的4次方
double a = Math.pow(2,4);
System.out.println(a);
逻辑运算符(与、或、非)
与:and(&&)
或:or(||)
非:取反(!)
例:
public class Demo06 {
public static void main(String[] args) {
boolean a = false;
boolean b = true;
System.out.println(a && b);//两个变量都为真,结果才为真
System.out.println(a || b);//两个变量有一个为真,结果就为真
System.out.println(!(a && b));//如果是真,结果为假,如果是假,结果为真
int c = 4;
boolean d = (c < 3)&&(c++ < 5);//c<3已经为假,所以c++不会再执行
System.out.println(c);
System.out.println(d);
}
}
/*扩展:
A = 0010 1011
B = 0101 0110
A&B = 0000 0010(上下都是1才输入1)
A|B = 0111 1111(上下只要有一个1就输出1)
A^B = 0111 1101(上下相同输出0,不相同输出1)
~B = 1010 1001(与B相反)
*/
程序结果:
<<左移 >>右移
左移相当于*2
右移相当于/2
赋值运算符(+=和-=)
a += b就等于a = a + b
a -= b就等于a = a - b
例:
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);//将a和b连接
System.out.println(a + b + "");
}
}
程序结果:
条件运算符(?:)
public class Demo08 {
public static void main(String[] args) {
//基本格式:x ? y : z;
//x是条件,如果符合条件执行y否则就执行z
//效果和if语句一样
int age = 23;
String type = age < 18?"成年":"未成年";
System.out.println(type);
}
}