VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > Java教程 >
  • i++ 和++i 的理解 以防面试

根本原理:

复制代码
//模拟 a++
function afterAdd(){
var temp = a;
a = a+1;
return temp;
}

//模拟++a;
function beforeAdd(){
a = a+1;
return a;
}
复制代码

 

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

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

1
2
3
4
5
public void test(){
      int i = 0;
      i=i++;
      System.out.println(i);
  }

 

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
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出来的结果分别是什么

1
2
3
4
5
6
7
8
9
var a = 5,<br data-filtered="filtered">     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,

1
2
3
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++ 的结果:即 
1
2
3
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--的结果

1
2
3
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++的结果:

1
2
3
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;

 

我从来不相信什么懒洋洋的自由。我向往的自由是通过勤奋和努力实现的更广阔的人生。 我要做一个自由又自律的人,靠势必实现的决心认真地活着。

来源:https://www.cnblogs.com/lixiuming521125/p/10865392.html

相关教程