一、算术运算符
//测试算术运算符:+ - + - * / % ++ -- +
class TestAri
{
public static void main(String[] args)
{
//除:/
int i = 12;
int j = i/5;
double d = i / 5;
System.out.println(j);//j的值为2
System.out.println(d);//d的值为2.0
double d1 = i/5.0;//d1的值为2.4
//取模:% ,结果的符号取决于被摸数
int i1 = i % 5;//i1 = 2
int i2 = -12 % 5;//i2=-2
int i3 = 12 %(-5);//i3=2
int 14 = -12 % (-5);//i4=-2
//前++:先加一后做运算
//后++:先做运算后加一
int myInt1 = 10;
int myInt2 = myInt1++;//后++
System.out.println(myInt1);//11
System.out.println(myInt2);//10
int myInt3 = 10;
int myInt4 = ++myInt3;//后++
System.out.println(myInt3);//11
System.out.println(myInt4);//11
//前--:先减一后做运算
//后--:先做运算后减一
}
}
二、赋值运算符
//赋值运算符: += -= *= /= %= ,不会改变原有数据类型
class GetValue
{
public static void main(String[] args)
{
int i1 = 10;
i1 += 3;//i1 = i1 +3
short s = 10;
s = s+3;//编译不通过,自动类型转换为int型,但s为short型
s = (short)(s + 3);//只能这样实现
s+=3;//既可以实现运算,又不会改变s的数据类型
}
}
三、比较运算符
四、逻辑运算符
&—逻辑与 | —逻辑或 !—逻辑非
&& —短路与 || —短路或 ^ —逻辑异或
//逻辑运算符: & && | || ! ^
class TestLogic
{
public static void main(String[] args)
{
boolean a = true;
boolean b = false;
//&与&&的区别:&:不管左边是true还是false,右端都会进行运算。
// &&:当左端为false时,右端不会进行运算,这就是短路运算。
//使用时,建议使用&&
int i1 = 10;
if(b&(i1++)>0)
{
System.out.println("今天天气很晴朗");
}
else
{
System.out.println("难得没有雾霾");
}
System.out.println(i1);//11
int i2 = 10;
if(b&&(i2++)>0)
{
System.out.println("今天天气很晴朗");
}
else
{
System.out.println("难得没有雾霾");
}
System.out.println(i2);//10
//| 与 || 的区别:|:左端为true时,右端正常进行运算
// ||:左端为true时,右端不进行运算
int i3 = 10;
if(a | (i3++)>0)
{
System.out.println("今天天气很晴朗");
}
else
{
System.out.println("难得没有雾霾");
}
System.out.println(i3);//11
int i4 = 10;
if(a || (i4++)>0)
{
System.out.println("今天天气很晴朗");
}
else
{
System.out.println("难得没有雾霾");
}
System.out.println(i4);//10
}
}
五、位运算符
(1)左移运算符:
(2)右移运算符和无符号右移运算符:
(3)异运算符:
六、三元运算符
/*
三元运算符:(条件表达式)? 表达式1 : 表达式2;
要求表达式1与表达式2为同一数据类型。
既然是运算符,就一定会有运算的结果,结果的数据类型与表达式1,2的类型一致
*/
class TestSanYuan
{
public static void main(String[] args)
{
int i = 10;
int j = 20;
//此时max记录了i与j的较大值
int max = (i > j)? i : j;
String str = (i > j)? "i大" : "j大";
//String str = (i>j)? i : "j大"; 错误
String str1 = (i > j)?"i大" : (i == j)? "相等": "j大" ;
System.out.println(max);
System.out.println(str);
System.out.println(str1);
}
}