public class ArithmaticOp{ public static void main( String args[] ){ int a=5+4; //a=9 int b=a*2; //b=18 int c=b/4; //c=4 int d=b-c; //d=14 int e=-d; //e=-14 int f=e%4; //f=-2 double g=18.4; double h=g%4; //h=2.4 int i=3; int j=i++; //i=4,j=3 int k=++i; //i=5,k=5 System.out.println("a = "+a); System.out.println("b = "+b); System.out.println("c = "+c); System.out.println("d = "+d); System.out.println("e = "+e); System.out.println("f = "+f); System.out.println("g = "+g); System.out.println("h = "+h); System.out.println("i = "+i); System.out.println("j = "+j); System.out.println("k = "+k); } } 其结果为: C:\>java ArithmaticOp a = 9 b = 18 c = 4 d = 14 e = -14 f = -2 g = 18.4 h = 2.4 i = 5 j = 3 k = 5 在这个程序中以下的程序,请问这是怎么算出得来的结果。int f=e%4; //f=-2 double g=18.4; double h=g%4; //h=2.4 int i=3; int j=i++; //i=4,j=3 int k=++i; //i=5,k=5 谢谢帮助。。。。。
第一:int f=e%4;因为上面的e已经为-14(int e=-d; //e=-14 ),所以这里拿-14%4,结果自然是-2。第二:double h=g%4;同样,因为之前给g赋值为18。4,所以拿18。4%4,结果就是2。4.第三:j=i++的意思是,先把i的值赋给j,然后i再自加1,之前定义了i=3,所以这里j=3,然后i自加1,就是4。第五:k=++i的意思是,先把i自加1的值赋给k,因为上面i的值已经是4,所以这里k=5,i自加1后的值也就是5。
% 是取余数e%4 = -14/4的余数,因为-14 = -3 * 4 - 2 ,所以e%4 = -2j = i++,此运算法则是现价i赋值给j,然后i自加1k = ++i, 此运算法则是先将i自加,然后赋值给k