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;再赋值

  • 相关阅读:
    vue中使用ztree时报找不到init方法错的解决方案
    element-ui 自定义表单验证 , 但是不出现小红心解决方案
    iframe子页面与父页面之间通信
    GSS系列题解——最大子段和系列
    平衡树 区间树 学习
    数据结构:从入门到精通
    后缀数组
    2019元旦总结,迎接2019
    网络流+费用流 学习
    SLT学习——leafes tree扩展 【文艺平衡树】
  • 原文地址:https://www.cnblogs.com/happy520/p/6970631.html
Copyright © 2011-2022 走看看