/**********************************************************************************
*
* 文件名: OperatorDetail.java
*
* 描述:求余/自增/自减运算的细节
*
* 知识点1:求余数%
* a%b的本质是a = a - a / b * b
* 当a是小数时a =a - (int)a / b * b
* 注:有小数运算,得到的结果是近似值
*
* 知识点2:自增/自减用于赋值语句时
* a = ++i 本质过程是(1)i=i+1; (2)temp=i; (3)a=temp; 先自增后赋值
* a = i++ 本质过程是(1)temp=i; (2)i=i+1; (3)a=temp; 先赋值后自增
* 注:自减同理
*
*********************************************************************************/
public class OperatorDetail {
public static void main(String[] args) {
//练习1
//a = -22 - (-22) / 3 * 3 = -22 - (-7) * 3 = -22 + 21 = -1
int a = -22 % 3;
//b = -11.5 - (int)(-11.5) / 3 * 3 = -11.5 - (-3) * 3 = -11.5 + 9 = -2.5
double b = -11.5 % 3;
//c = -11.4 - (int)(-11.4) / 3 * 3 = -11.4 - (-3) * 3 = -11.4 + 9 = -2.4
double c = -11.4 % 3;
System.out.println("a=" + a);
System.out.println("b=" + b);
System.out.println("c=" + c); //c=-2.4000000000000004
//练习2
int i = 12;
//i=i+1=13; temp=i=13; d=temp=13
int d = ++i;
//temp=i=13; i=i+1=14; e=temp=13
int e = i++;
System.out.println("d=" + d);
System.out.println("e=" + e);
}
}