zoukankan      html  css  js  c++  java
  • i++ 和++i 的理解 以防面试

    根本原理:

    //模拟 a++
    function afterAdd(){
    var temp = a;
    a = a+1;
    return temp;
    }
    
    //模拟++a;
    function beforeAdd(){
    a = a+1;
    return a;
    }

    所以网上找了几个面试题,大家看看:

    题目一:输出i的值是多少?

    public void test(){
          int i = 0;
          i=i++;
          System.out.println(i);
      }
    

    题目二:输出y 和i的值分别是多少?

    public class Test3 {
        public static void main(String[] args) {    
            int y=0;    
            int i =0;
            y=++y;
            y=++y;
            y=++y;
            y=++y;
            y=++y;
            System.out.println("y="+y);
            i=i++;
            i=i++;
            i=i++;
            i=i++;
            i=i++;
            System.out.println("i="+i);
    
        }
    
    }
    

    第三题:js中 console.log出来的结果分别是什么

    var a = 5,
         b; b = a++ +1; console(b,a); a = 5; c = a-- + --a; console(c,a); a = 5; d = --a + a++; console(d,a);

    第一题的答案是:0

    第一题解析:i= i++;i++原理是:

    int temp = i;
    i = i+1;
    return temp;  

    也就是说:i++执行的过程是:temp = 0;  i=1;返回 temp ;即返回0;回到实际的代码里面:i=i++;即 i=0;

    注意:这里原理里面的 i= i+1; 的最后i的结果被 实际的代码给覆盖掉了。所以这句话一直是被覆盖。

    第二题答案:5,0

    第二题的解析:++y,比较好理解,所以y=5; x的部分跟第一题是类似的;i++ 结果是 0,

    int temp = i; //代入i  int temp = 0;
    i = i+1;// 代入i i= 1
    return temp;// 返回 0;
    

      回到代码:

    i=i++; 即 i=0;
    重复多次后 i=0,所以 输出 i = 0;


    第三题的答案:第一个console.long (b,a):6,6;  第二个:console.long (c,a):8,3 ;第二个:console.long (d,a):8,5
    第三题的解析:b = a++ +1; a++ 的结果:即
    int temp = a; //代入i  int temp = 5;
    a = a+1;// 代入i i= 1  a  = 5+1; 即a = 6;
    return temp;// 返回 5; 即 a++ 为 5; 
    

     a++的结果是5,所以 b = 5+1 所以=6;

    a的结果是,6;       

    第二个:console.long (c,a) :c = a-- + --a;   a--的结果

    int temp = a; //代入i  int temp = 5;
    a = a-1;// 代入i i= 1  a  = a - 1; 即a = 4;
    return temp;// 返回 5; 即 a-- 为 5; 
    

     --a ,当前 a =4,--a 即 a= 3; 所以 c = 5+3 所以 c = 8,a = 3;

    第二个:console.long (d,a) :d = --a + a++;   --a的结果,4; a++的结果:

    int temp = a; //代入i  int temp = 4;
    a = a+1;// 代入i i= 1  a  = 4 + 1; 即a = 5;
    return temp;// 返回 4; 即 a++为 4; 
    

     a++ 为 4,d= 4+4 所以d=8 a = 5;

  • 相关阅读:
    docker harbor 修改密码 重置密码 sql
    mongodb监控并在服务挂掉后自动重启脚本
    centos7 ffmpeg安装 rtsp相关
    vscode vue 自动格式化代码
    开启go module
    Python3.x:打包为exe执行文件(window系统)
    Docker 日志都在哪里?怎么收集?
    HttpsURLConnection信任任何证书
    SP3734 PERIODNI
    联赛前的记录
  • 原文地址:https://www.cnblogs.com/lixiuming521125/p/10865392.html
Copyright © 2011-2022 走看看