zoukankan      html  css  js  c++  java
  • Java基础-自增自减运算符练习题

    我们用一个简单的例子分析下边的运行结果:

     1 package demo;
     2 
     3 public class ZiZeng {
     4     public static void main(String[] args) { 5         int i = 0;
     6         test(i);
     7         // i = i++;
     8         i = ++i;
    9         System.out.println("----" + i);
    10         // i = i++;
    11         i = i++;
    12         System.out.println("****" + i);
    13         
    14     }
    15     
    16     public static void test(int i){
    17         i++;
    18         System.out.println("++++" + i);
    19     }
    20 }

    输出结果:

    ++++1
    ----1
    ****1

    对以上的执行结果分析如下:
    逐行代码分析:

    1, 在第5行定义了 int i = 0;

    2, 在 第6行调用了test(i)方法,此时的 i = 0作为实际参数将值0传给了test方法的形式参数i,

         test方法中的i 是形式参数,形式参数值的改变不会影响实际参数,所以test方法中的i的值是1,而,main方法中i的值仍然为0

    3, 第18行输出 1

    4, 在第8行中, i = ++i,先自增后赋值,所以此时 i = 1

    5, 第9行输出 i = 1;

    6, 在第11行中,i = i++,先赋值再自增,,所以此时i = 1

    7, 第12行输出 1

    练习题2:

    对于以下,有int x = 5, y = 6, z;

        题目1:z = ++x + y++;

        题目2:z = ++x + x++;

        题目3:x = ++x + x++;

      题目4:z = x > y ? ++x : y++; 

    答案:

    题目1:x = 6; z = 12; y = 7

    题目2:x=7, y = 6, z=12

    题目3:x=12

    题目4:x = 5, y = 7, z = 6

    练习3,

     int a=1;

    System.out.println(++a+a);
     
    结果:4
     
    练习4,

    int i = 0;   

    int j = i++;   

    int k = --i;

    这段代码运行后,i等于多少?j等于多少?k等于多少?

    i:0
    j:0
    k:0

    1. int i = 0;   

    2. int j = i++ + ++i;   

    3. int k = --i + i--;

    代码执行后i、j、k分别等于多少呢?

    在第二个例子中,对于int j=i++ + ++i;,首先运行i++,i的值0被用于加运算(+),之后i自增值变为1,然后运行++i,i先自增变为2,之后被用于加运算,最后将i两次的值相加的结果0+2=2赋给j,因此这行代码运行完毕后i=2、j=2;对于int k=--i + i--;用一样的思路分析,具体过程在此不再赘述,结果应该是i=-2、k=-2。

    练习5,

    int a=5;
    int b=++a;   // ++在前 先运算再赋值 现在 a=b=6;
    int c=--b+a;  //--优先级比+高,先计算-- c此时b=5再加上a 5+6=11;再赋值

    int c=a+(++b); //同理 括号优先级最高 先计算++b 此时b=7 6+7=13;再赋值

  • 相关阅读:
    HDU 1058 Humble Numbers
    HDU 1421 搬寝室
    HDU 1176 免费馅饼
    七种排序算法的实现和总结
    算法纲要
    UVa401 回文词
    UVa 10361 Automatic Poetry
    UVa 537 Artificial Intelligence?
    UVa 409 Excuses, Excuses!
    UVa 10878 Decode the tape
  • 原文地址:https://www.cnblogs.com/happy520/p/6970631.html
Copyright © 2011-2022 走看看