/*在学习java的过程中,我发现原来c++对表达式的解释顺序和java的有很大不同c++是循规蹈矩的从左到右。java的是扫描一边将优先级高的先算了。下面是我做的一个试验。*/ public class TestGreeting { public static void main (String[] args) { add1(); add11(); add2(); add22(); } public static void add1() { System.out.println("(++i)+(++i)+(++i)");//4 int i=3,j; j=++i; System.out.println("i="+i);//4 System.out.println("j="+j);//4
i=3; j=(++i)+(++i); System.out.println("i="+i);//5 System.out.println("j="+j);//9 4+5
i=3; j=(++i)+(++i)+(++i); System.out.println("i="+i);//6 System.out.println("j="+j);//15 4+5+6 /* borland c++ builder example int i=3,j;
j=(i++); ShowMessage("i="+IntToStr(i)); //4 ShowMessage("j="+IntToStr(j)); //3 3
i=3; j=(i++)+(i++); ShowMessage("i="+IntToStr(i)); //5 ShowMessage("j="+IntToStr(j)); //6 3+3
i=3; j=(i++)+(i++)+(i++); ShowMessage("i="+IntToStr(i)); //6 ShowMessage("j="+IntToStr(j)); //9 3+3+3 */ } public static void add11() { System.out.println("++i + ++i + ++i ");//4 int i=3,j; j=++i; System.out.println("i="+i);//4 System.out.println("j="+j);//4
i=3; j= ++i + ++i ; System.out.println("i="+i);//5 System.out.println("j="+j);//9 4+5
i=3; j= ++i + ++i + ++i ; System.out.println("i="+i);//6 System.out.println("j="+j);//15 4+5+6 } public static void add2() { System.out.println("(i++)+(i++)+(i++)");//4 int i=3,j; j=(i++); System.out.println("i="+i);//7 System.out.println("j="+j);//6
i=3; j=(i++)+(i++); System.out.println("i="+i);//5 System.out.println("j="+j);//7 3+4
i=3; j=(i++)+(i++)+(i++); System.out.println("i="+i);//6 System.out.println("j="+j);//12 3+4+5 /*borland c++ builder example int i=3,j;
j=(i++); ShowMessage("i="+IntToStr(i)); //4 ShowMessage("j="+IntToStr(j)); //3 3
i=3; j=(i++)+(i++); ShowMessage("i="+IntToStr(i)); //5 ShowMessage("j="+IntToStr(j)); //6 3+3
i=3; j=(i++)+(i++)+(i++); ShowMessage("i="+IntToStr(i)); //6 ShowMessage("j="+IntToStr(j)); //9 3+3+3 */ } public static void add22() { System.out.println("i++ + i++ + i++");//4 int i=3,j; j=i++; System.out.println("i="+i);//7 System.out.println("j="+j);//6
i=3; j= i++ + i++ ; System.out.println("i="+i);//5 System.out.println("j="+j);//7 3+4
i=3; j= i++ + i++ + i++; System.out.println("i="+i);//6 System.out.println("j="+j);//12 3+4+5 } } 
|