站内搜索: 请输入搜索关键词

当前页面: 开发资料首页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()
本来就是这样


↑返回目录
前一篇: 求助一个问题 ?
后一篇: 一个关于对象在内存中分配的问题