i++和++i

Posted wujianwu

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了i++和++i相关的知识,希望对你有一定的参考价值。

今天做了一道题,代码如下:

packagealgorithms.com.guan.javajicu;
public class Inc
public staticvoid main(String[] args)
Incinc = newInc();
inti = 0;
inc.fermin(i);
i=i ++;
System.out.println(i);


void fermin(inti)
i++;

要求输出的是什么?这里楼主做错了- -羞耻,因此今天围绕这道题来讲一讲。

首先这道题有两个陷阱。第一,java是属于值传递的,代码中的i属于基本数据类型,因此方法中的i只是外面i的一个副本,对它操作并不会对外面的i的值带来变化;其次,就是罪恶之源i=i++了,这里楼主刚开始并没有想太多,直接写了输出1,看了答案瞬间才反应过来= =。i++和++i不同,前者是先把当前i拿出来赋值给声明的变量i=i,然后再i+1,加1之后并没有赋值操作,也就是说前面这道题i输出还是等于0;后者是先i=i+1,然后再赋值给声明的变量i=i,如果这道题改成i=++i,那么输出就是1了。

以上就是今天的小知识点,最后想对大家说,做题一定要思考一会- -,别以为很简单,有时候会有双重陷阱甚至更多,因此,做题需谨慎- -。

Add:1.以下这道题输出什么呢?

int a = 0;

for(int i = 0;i<99;i++)

  a = a++;

System.out.println(a);

2.以下这道题又输出什么呢= =?

Integer a = 0;

int b = 0;

for(int i = 0;i<99;i++)

 a = a++;

b = a++;

System.out.println(a);

System.out.println(b);

 

知道的朋友在评论里说出来吧,并说明为什么哦。

以上是关于i++和++i的主要内容,如果未能解决你的问题,请参考以下文章

关于i++ 和 ++i

Inter1-关于i++和++i

简介一下 i++和++i&&i=i+i,i+=1;的区别

JavaScript运算符:递增和递减(++i,--i 和 i++,i-- 的区别)

++i和--I的区别

PHP中的++$i和$i++有啥区别?