当前页面: 开发资料首页 → J2SE 专题 → 不明白它的输出结果.
不明白它的输出结果.
摘要: 不明白它的输出结果.
请问一下如何理解以下程序:
public class My
{
public static void main(String args[])
{
int i=1;
int j=i++;
if((i>++j)&&(i++==j))
i+=j;
System.out.println(i);
}
}
看书理解呗。
啥问题?
public class My
{
public static void main(String args[])
{
int i=1; //i=1
int j=i++; //j =1; i=2
if((i>++j)&&(i++==j)) //(i>++j) =(2>2)为假,短路
i+=j;//i=i+j <==> i=2+2
System.out.println(i); //输出4
}
}
不知道有没有做对。
我认为i是等于3的
可是答案为2.真不知道是怎么来的.
public class My
{
public static void main(String args[])
{
int i=1; //i=1
int j=i++; //j=1, i=2
if((i>++j)&&(i++==j)) //if (2>2) 结果是false,发生短路,后面的条件不再运行判断
i+=j; //条件不满足,不再运行
System.out.println(i); //i=2
}
}
所以答案是:2
给分,结贴
2
同意 vcokno1()
if下面那条语句肯定不会被执行。
同意
明白了,谢谢各位!
同意 vcokno1()
本来就是这样