(1)数学运算符
数学运算无非就是加减乘除以及取余(模)运算。
先看一个程序:
public class Data
{
public static void main(String[] args)
{
double a=0.6;
int b=2;
int c=0;
int d=(int)a/b;
/*
double e=a/c; Exception in thread "main" java.lang.ArithmeticException:
/ by zeroat Data.main(Data.java:9);编译不出错,运行一定会出错,原因很
明确:除数为0;
int f=a/b;依然会报错,需要int�找到double损失精度 ,a/b获取的结果应该
是double类型,而将double类型的值赋给int类型,显然会出错,范围小的数据
类型可以赋给数据类型范围大的,相反则不行。
*/
int e=(int)a/b;
int f=c/b;
double g=a/b;//将double类型的运算结果赋给double类型的变量
double h=c/b;//将int类型的运算结果赋给double类型的变量,小范围赋给大范围
/*
int i=a+b;需要int,找到double;
*/
double i=a+b;
//int j=a%b;依然损失精度
int k=-2;
int l=5;
int m=-7;
int n=l%k;
int o=m%l;
int p=k*l;//乘法;
int q=k-l;//减法
System.out.println(b);
System.out.println(c);
System.out.println(d);
System.out.println(e);
System.out.println(f);
System.out.println(g);
System.out.println(h);
System.out.println(i);
System.out.println(n);//取余运算的结果正负值只与被除数有关
System.out.println(o);
}
}
运行结果如下:
2
0
0
0
0
0.3
0.0
2.6
1
-2
总结:
范围大的数据类型不能直接赋给比它小的数据类型,可以通过强制类型转换,而将范围小的数据类型可以赋给比它范围大的数据类型。
(2)逻辑运算符
看一段代码:
public class Data
{
public static void main(String[] args)
{
int a=1;
int b=2;
boolean c=(a==b);//等于
boolean d=(a!=b);//不等于
boolean e=(a>b);//大于
boolean f=(a>=b);?/不小于
boolean g=(a<b);//小于
boolean h=(a<=b);//不大于
boolean i=true;
boolean j=false;
boolean k=(i&&j);//与运算
boolean l=(i||j);//或运算
System.out.println(c);
System.out.println(d);
System.out.println(e);
System.out.println(f);
System.out.println(g);
System.out.println(h);
System.out.println(k);
System.out.println(l);
}
}
结果如下:
false
true
false
false
true
true
false
true
另外一个程序:
public class Data
{
public static void main(String[] args)
{
int a=1;
int b=1;
a++;
++b;
int c=b;
int d=b++;
int e=++b;
System.out.println(a);
System.out.println(b);
System.out.println(c);
System.out.println(d);
System.out.println(e);
}
}
结果如下:
2
4
2
2
4
总结:
重点是逻辑与(&&)运算和逻辑或(||)运算,与运算:&&两端两个操作符都为true最后结果才为true;||两端两个操作符有一个为true那么就过就为true;
关于变量的自增与自减运算。
1) 关于int b = a++,作用是将a的值先赋给b,然后再让a自增1.
2) 关于int b = ++a,作用是将a的值先自增1,然后将自增后的结果赋给b。
3)只要变量a在程序中单独出现 ++a或a++而不是出现在赋值运算中,那么最终a的结果就会+1;