算术运算符
算术运算符有:+ - * / % ++ –
++分为前置++ 和后置++,这俩者有所不同。
前置++是先加后用,后置++是先用后加。
前置–是先加后用,后置–是先用后加。
如下:我们可以看出++a在a++之前,也就是说 ++a和a++屏幕显示的是6。
public class s{
public static void main(String[] args)
{
int a,b;
a=5;b=15;
System.out.println(a+b);
System.out.println(a-b);
System.out.println(a*b);
System.out.println(a/b);
System.out.println(a%b);
System.out.println(++a);
System.out.println(a++);
}
}
关系运算符
关系运算符:> >= < <= == !=
关系运算符返回的值类型是boolean类型,即true和false
public class s{
public static void main(String[] args)
{
int a,b;
a=15;b=15;
System.out.println(a>b);
System.out.println(a>=b);
System.out.println(a<b);
System.out.println(a<=b);
System.out.println(a==b);
System.out.println(a!=b);
}
}
逻辑运算符
逻辑运算符有: &(与) |(或) ^(异或) !(非)
&&(短路与) ||(短路或)
&&和&都是一假即假
||和|都是一真即真
^只有俩边不同才为真
!真变成假,假变成真
&&和&有所区别,当&前面的表达式为假的时候,后面的表达式依然会进行运算,而&&不会。
public class s{
public static void main(String[] args)
{
int a,b;
a=15;
b=15;
System.out.println(true&false);
System.out.println(true&true);
System.out.println(true|false);
System.out.println(true^false);
System.out.println(true^true);
System.out.println(!true);
System.out.println(a>b&&a++>b);
System.out.println(a);
System.out.println(a>b&a++>b);
System.out.println(a);
}
}
可以看出&&后面的表达式并没有执行,所以a依然为15,
而&后面的表达式执行,a为16.
赋值运算符
赋值运算符:= += -= *= /= %=
public class s{
public static void main(String[] args)
{
byte a=10;
a=a+4;
}
}
这样的代码编译会报错,因为可能会损失精度,所以需要加强制类型转换。
而这样不会:
public class s{
public static void main(String[] args)
{
byte a=10;
a+=4;
}
}
这说明复合运算符会默认加上强制类型转换,即a=(byte)(a+4)。