算术运算符
+ - * / % (前)++ (后)++ (前)-- (后)--
一、除号(/)
注意点:
1、/ 号前后的数据类型,若都是int 则输出结果为int
若其中有一个为double,结果double
2、若在一方用强制类型转换,则需讨论,具体见代码
两边类型一致
/*
运算符之一:算术运算符
+ - * / % (前)++ (后)++ (前)-- (后)--
*/
class AriTest
{
public static void main(String[] args)
{
//除号两边都是int
int num1 = 13;
int num2 = 6;
int result = num1/num2;
System.out.println(result);//2
int result2 = num1 / num2 * num2;
System.out.println(result2);//12
}
}
两边类型不一致
class AriTest
{
public static void main(String[] args)
{
//除号两边都是int
int num1 = 15;
int num2 = 6;
int result = num1/num2;
System.out.println(result);//2
int result2 = num1 / num2 * num2;
System.out.println(result2);//12
//除号两边int,结果int转换成double
double result3 = num1 /num2;//2.0
System.out.println(result3);
//除号两边为int 结果为int 转换成double,然后赋值给double类型
double result4 = num1 / num2 +0.0;
System.out.println(result4);//2.0
//num2自动转换成double型,再与int型做运算成double型,再赋值给double
double result5 = num1 /(num2+0.0);
System.out.println(result5);//2.5
//num1强转成double与int型的变量做运算,结果为double,最后赋值给double
double result6 = (double)num1 / num2;
System.out.println(result6);//2.5
//num1与num2做运算成int型,结果为int强转成double,在赋值给double变量
double result7 = (double)(num1 / num2);
System.out.println(result7);//2.0
}
}
二、取余、取模(%)
注意点:
1、两边类型须一致
2、若有负号,结果与被除数正负号一致
具体见代码
//% 取余运算
int m1 = 12;
int n1 = 5;
System.out.println("m1 % n1 =" + m1 % n1);//2
int m2 = -12;
int n2 = 5;
System.out.println("m2 % n2 = " + m2 % n2);//-2
int m3 = 12;
int n3 = -5;
System.out.println("m3 % n3 =" + m3 % n3);//2
int m4 = -12;
int n4 = -5;
System.out.println("m4 % n4 =" + m4 % n4);//-2
三、自加、自减(++ -- )
注意点:
1、(前)++ :先自增1,后运算
(后)++ :先运算,后自增1
//(前)++ :先自增1,后运算
//(后)++ :先运算,后自增1
int a1 = 10;
int b1 = ++a1;
System.out.println("a1 = "+ a1 + ",b1 = " + b1);//a1 = 11,b1 = 11
int a2 = 10;
int b2 = a2++;
System.out.println("a2 = " + a2 + ",b2= " + b2 );//a2 = 11,b2 = 10
2、若自增运算符单独一行,在输出,则前加与后加结果没有区别
int a3 = 10;
++a3;
int b3 = a3;
System.out.println(b3);//11
3、自增、自减不改变变量本身数据类型
//注意点:
short s1 = 10;
//s1 = s1+1;
//编译失败
//s1 = (short)(s1+1);
s1++;
System.out.println(s1);//11
byte bb1 = 127;
bb1++;
System.out.println("bb1 = " + bb1);//-128
自减与自增语法一致