算术运算符:(加)+,(减)-,(乘)*,(除)/,(求余)%,自增自减
一,算数运算符:
当有若干个变量参与运算时,结果类型取决于这些变量中表示范围最大的那个变量类型。
如果参加运算的变量中有整型int,有双精度浮点型double,有短整型short,那么最后的结果类型就是double。
这里主要说说除法和取模求余数。除法: 例子1: int a = 1;
int b = 2;
System.out.println(a / b); //结果是0 如果按照数学意义来看结果应该是0.5,但是a和b都是int的,那么结果也是int型的,0.5是小数。若a,b两个变量无法整除时,java环境根据ab都是int型,结果也必须是int的,它会把结果的小数点后面的那部分全部舍掉,不是四舍五入,所以这里的a/b结果是0。
例子2: double i = 1;
int j = 2;
int k = i / j;
System.out.println(k); // 无法通过编译
这个编译会报错。i和j参与运算,结果的类型应该是double类型的,double型的数是不能赋值给int型的k的,所以报损失精度的错。 例子3:在例子2的基础上,把变量k改成double型 double i = 1;
int j = 2;
double k = i / j;
System.out.println(k); // 结果是0.5
这个编译会报错。i和j参与运算,结果的类型应该是double类型的,然后赋值给double型的k,通过编译,结果0.5。 例子4:在例子1的基础上 int a = 1;
int b = 2; int c = a / b;
double j = a / b;
double k = (double)a / b; System.out.println(c); //结果是0
System.out.println(j); //结果是0.0
System.out.println(k); //结果是0.5
取模%(求余): 取模的结果符号,永远与被除数(就是%前面的数)的符号相同。如a%b的结果符号跟a一致。
除了布尔类型不能取模外,其他的都可以取模,具体例子参考下面:
1,字符char型取模:a~z的ASCII码值是97~122,A~Z的ASCII码值是65~90
2,int整型
3.double双精度型