黑马程序员技术交流社区
标题:
新手不知道的知识
[打印本页]
作者:
倦鸟识山
时间:
2015-9-21 19:02
标题:
新手不知道的知识
操作符小知识:
while(x=y){
//...
}
问题:这个语句在进行什么操作?
很明显程序员想测试是否“相等”(==),但是这个语句实际是在进行赋值。
在C和C++中,如果y是一个非零值,那么这种赋值结果肯定是true,这样语句便会得到一个无穷循环。
在Java中,除非x和y都是布尔值,否则这个表达式结果是int值,编译器会抛出编译时错误,阻止程序进一步运行。
作者:
panpanpan138
时间:
2015-9-21 20:05
谢谢分享
作者:
maxwell247
时间:
2015-9-21 20:41
说的不错。 while() 括号中只接受boolean类型值。
作者:
stream_lin
时间:
2015-9-21 21:09
66666。长知识了
作者:
purgatory
时间:
2015-9-21 21:17
恩 不错
作者:
heimatai6
时间:
2015-9-21 21:28
?????
作者:
381890216
时间:
2015-9-25 15:09
想想确实,while 只接收boolean, 感觉C和C++的这种结果有种强行通过的感觉
作者:
妳的微笑❤
时间:
2015-10-8 10:03
谢谢大神分享
作者:
fwqk123
时间:
2015-10-8 10:24
谢谢大神分享
作者:
SF_NEVERMORE
时间:
2015-10-8 10:59
还以为括号中不为零的话就是死循环,不过现在记住了,在java中,如果括号中表达式结果不是布尔值,会报错,谢谢
作者:
itheima_casper
时间:
2015-10-8 13:35
C++中 非0都视为true 详细分享
作者:
如梦丶似幻
时间:
2015-10-8 20:06
感谢分享~~~
作者:
长颈鹿的烦恼
时间:
2015-10-8 20:10
非常感谢~
作者:
michael_wlq
时间:
2015-10-8 22:24
不错不错
作者:
angusaya
时间:
2015-10-8 22:47
感谢分享~\(≧▽≦)/~
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2