5.2 i++ (1 / 3)

        5.2i++面试例题1:下列程序的输出结果是多少?

        publiccssTest{statitx=5;}statitx,y;publicstatiain(String[]args){x--;myMethod();System.out.println(x+y+++x);}publicstatiyMethod(){y=x+++++x;}}

        解析:不论是C++还是Java,对i++类的面试问题总是很多。这里要注意运算符的优先级问题。

        对上面代码的解释如下:

        publiccssTest{statitx=5;}//在第一次被载入JVM时运行,但由于是局部变量,x=5不影响后面的值statitx,y;//初始化时x=0;y=0;publicstatiain(String[]args){x--;System.out.println(x);//步骤1:在运行myMethod();之前,x是-1,开始调用myMethod()函数myMethod();//步骤4:在运行myMethod();之后x是1,y是0System.out.println(x+y+++x);//步骤5:运行x+(y++)+x=1+0+1=2。}publicstatiyMethod(){y=x+++++x;System.out.println(y);//步骤2:进入myMethod()运行y=(x++)+(++x)后y=0System.out.println(x);//步骤3:此时x=1}}

        答案:2

        面试例题2:Giventhefollowingcss:(给定下面的类:)

        publiccssZeroPrint{publicstatiain(Stringargv[]){inti=0;//Here}}

        Whichofthefollowinglinesifpcedaftertheent//Herewillprintoutisnot0?(哪个选项替换掉类中的//Here不会输出结果0?)[Sun公司2006年10月面试题]

        A.System.out.println(i++);

        C.System.out.println(i);

        B.System.out.println(i+'0');

        D.System.out.println(i--);

        解析:这道题主要考查后置操作符,选项A是自加运算,选项D是自减运算(但选项A和选项D都是先打印0,再自加或自减)。选项B中'0'是一个char类型,而不是一个数字类型。System.out.println(i+'0');的结果会得到48。

        答案:B

  The content is not finished, continue reading on the next page