A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 倦鸟识山 中级黑马   /  2015-9-21 19:02  /  734 人查看  /  14 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

操作符小知识:

while(x=y){
        //...
}

问题:这个语句在进行什么操作?

        很明显程序员想测试是否“相等”(==),但是这个语句实际是在进行赋值。
        在C和C++中,如果y是一个非零值,那么这种赋值结果肯定是true,这样语句便会得到一个无穷循环。
        在Java中,除非x和y都是布尔值,否则这个表达式结果是int值,编译器会抛出编译时错误,阻止程序进一步运行。

14 个回复

倒序浏览
谢谢分享
回复 使用道具 举报
说的不错。 while() 括号中只接受boolean类型值。
回复 使用道具 举报
66666。长知识了
回复 使用道具 举报
恩 不错
回复 使用道具 举报
?????
回复 使用道具 举报
想想确实,while 只接收boolean,                         感觉C和C++的这种结果有种强行通过的感觉
回复 使用道具 举报
谢谢大神分享
回复 使用道具 举报
谢谢大神分享
回复 使用道具 举报
还以为括号中不为零的话就是死循环,不过现在记住了,在java中,如果括号中表达式结果不是布尔值,会报错,谢谢
回复 使用道具 举报
C++中 非0都视为true    详细分享
回复 使用道具 举报
感谢分享~~~
回复 使用道具 举报
非常感谢~
回复 使用道具 举报
不错不错
回复 使用道具 举报
angusaya 来自手机 中级黑马 2015-10-8 22:47:40
15#
感谢分享~\(≧▽≦)/~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马