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

    技术2022-05-11  82

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


    最新回复(0)