i++和++i
2019-08-16 09:11:48来源:博客园 阅读 ()
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);
知道的朋友在评论里说出来吧,并说明为什么哦。
原文链接:https://www.cnblogs.com/wujianwu/p/11083498.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 一道非常棘手的 Java 面试题:i++ 是线程安全的吗? 2020-04-26
- 【视频+图文新手也友好】Java ++i(前自增)和i++(后自增)用法 2020-03-13
- 面试题1 2018-12-12
- java中i=i++的解析 2018-09-05
- i++与++i的区别 2018-08-10
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash