黑马程序员技术交流社区
标题:
请教下 这些正确的结果都是什么?
[打印本页]
作者:
张海洋
时间:
2013-3-22 18:27
标题:
请教下 这些正确的结果都是什么?
本帖最后由 张海洋 于 2013-3-23 19:32 编辑
分析以下程序运行结果:
int x = 1;
int y = 2;
System.out.println(x++ == y & ++x > y++);
System.out.println(x);
System.out.println(y);
int x = 1;
int y = 2;
System.out.println(x++ == y && ++x > y++);
System.out.println(x);
System.out.println(y);
int x = 1;
int y = 2;
System.out.println(x++ == y | ++x > y++);
System.out.println(x);
System.out.println(y);
int x = 1;
int y = 2;
System.out.println(x++ == y || ++x > y++);
System.out.println(x);
System.out.println(y);
作者:
王瑞
时间:
2013-3-22 19:26
本帖最后由 王瑞 于 2013-3-22 19:31 编辑
class Test
{
public static void main(String[] args)
{
int x = 1;
int y = 2;
System.out.println(x++ == y & ++x > y++); //false.原因: x++先自判断和y是否相等,再赋值,结果是false。左边false,邮编也是false
System.out.println(x); // x的值为3
System.out.println(y); //y的值为3
}
}
复制代码
作者:
王瑞
时间:
2013-3-22 19:33
剩下的就不一一运算了,有些区别,弄清楚就好办了。
i++是在一个先使用后加1,即先使用i的值,后让i+1
++i则是先加1后使用,即先让i+1后再使用i的新值
&和&&的区别,
&左边无论真假,邮编都会运算
&&左边是假,右边就不运算了。
| 和 || 的区别同上!
作者:
李晓峰
时间:
2013-3-22 22:39
/*
x++与++x的区别:
x++是先给x赋值,再自增1;
++x则相反,先给x自增1,然后自增1后的结果赋给x。
&&与&的区别:
& 左边为false,右边仍然运算。
&&左边为false,右边不再运算。
||与|的区别:
| 左边为true,右边仍然运算。
||左边为true,右边不再运算。
*/
我就拿第一段儿程序为例说明:
int x = 1;
int y = 2;
System.out.println(x++ == y & ++x > y++);//先判断1==2,结果为false,然后x自增1,x=2;接着x自增1,x=3,判断3>2,结果为true,最后y自增1,y=3
System.out.println(x);
System.out.println(y);
因此,结果依次为:
false
3
3
-------------
false
2
2-------------
true
3
3
-------------
true
3
3
作者:
黄玉昆
时间:
2013-3-22 22:58
楼主可以尝试运行一下,看看效果,然后针对相应的问题,进行提问,谢谢
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2