c++和java对表达式的解释顺序

王朝java/jsp·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

/*在学习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

}

}

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航