感谢大家的回答,看了很多,大概有两种解释,
一种是赋值成功了,所以为真,但是本人尝试了,各种数据类型,除了布尔类型以外都失败,所以应该不是这样.
另外一种非常又道理,程序在执行的时候先执行了赋值然后又读取了b的值以赋值之后变量b的值为准进行条件判断,本人认为这是正确的说法.
那么本人想继续请教,这种写法是一直都有吗?
而且在java中赋值语句本身也是一个表达式吗?
这个是一直都能用的,还是后来的JDK版本加进去的?
是不是只有boolean类型可以这么用其他的就不行了呢.
一直都可以,但是开发中很少这样写
只有boolean类型才可以的,JAVA不同于C/C++,BOOLEAN类型只接受true和false
如果我写 boolean b = false;
while(b = true)
也是对的...
你是想问while为什么这么些, 还是什么?
追问boolean b = true;
while(b)
while(b == true)
都是常见的方式
我是想知道 为什么while之后的条件里可以写一个赋值语句而没有写一个值为boolean类型的表达式?
你是说这个呀。
可以这么些, 相当于赋完值之后继续用在判断,先赋后用。
等于while(b)
不是说循环条件应该是一个boolean类型的值吗
针对这个问题 b = true 本身应该是一个赋值语句呀
他本身并不是一个表达式呀
赋值语句是有值的吗???
还有这种分两步的机制是单独设立的吗?
还是说赋值语句本身也是一个表达式???
我记得不是这样的吧...
而且这个东西是jdk1.5以后才加入的吗? 我怎么记得以前不能这么用呢?
刚才的回答错误,正确答案是赋值语句恒为真
赋值成功就变成true了?
那为什么我写
int i;
while(i = 5)
就报语法错误呢?
这个赋值也成功了呀...
这样说吧
正确语法 while(blooean) 所以说while(int)明显是错误的
while(b = true) 的时候给b赋值,b就是true,while(里面就是true)
就是说给b赋什么值,while里面就是什么