概述
13.class Happy {
public static void main(String args[]) {
int i = 1 ;
int j = i++ ;
if((i==(++j))&&((i++)==j)) {
i += j ;
}
System.out.println("i = "+i);
}
}
运行完上面代码之后输出i的值是多少?
A. 4
B. 5
C. 3
D. 6
java基础面试20题-答案解析版
正确答案是:B
int i = 1 ;
int j = i++ ;
i++,先赋值在++,
走完此处
i=2 j=1
下一步
if((i==(++j))&&((i++)==j)){}
if的&&判断从左到右(i==(++j))
++j,先++在比较
此时j=2,i==j为true。
(提个题外话&&如果左边为false,则右边不会执行,此处可以挖坑,读题细心观察)
继续走((i++)==j))
i++,先比较在++,
此时i=2,i==j为true。进入if块前i++ , i=3
i += j ;
i=3,j=2,
最后i=3+2=5.
如果想用断点一步步 看结果,建议将if的&&拆开来写。代码如下
public static void main(String args[]) {
int i = 1 ;
int j = i++ ;
if((i==(++j))){
if(((i++)==j)){
i += j ;
}
}
System.out.println("i = "+i);
}
最后
以上就是虚幻睫毛膏为你收集整理的java面试题-运算符++先后的全部内容,希望文章能够帮你解决java面试题-运算符++先后所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复