前两天做了java一套摸底考试题
才发现自己的基础知识如此薄弱,还是踏踏实实的吧!
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
答案:B
如题:int j=i++; 运算顺序 先将i的值赋给j然后i自增1。j=i; i=i+1;也就是结果:j=i; i=i+1 前面知道i=1 所以运行到这:j=1;i=2;
++j 即:j=j+1; 这一步j=2;
i==(++j) 2=2 所以第一个条件为真
因为是逻辑与 两个条件同时为真时,才会进if循环
所以继续判断 (i++)==j): 运算:先判断i是否等于j 然后i自增1; 结果为真,且i=3;
i += j ;i=i+j;即i=5;
输出:i=5;