我是靠谱客的博主 虚幻睫毛膏,最近开发中收集的这篇文章主要介绍java面试题-运算符++先后,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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面试题-运算符++先后所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(45)

评论列表共有 0 条评论

立即
投稿
返回
顶部