我目前正在攻读Java的期末考试,并希望得到第二个意见。 (有些人可能会在一两天前记得我) 无论如何,关于练习考试的问题是:
代码中的错误是什么?
boolean good = true
while(good = true){
//do stuff
}
我觉得这是一个技巧问题,因为明显的答案是这是一个无限循环;但是,我们不知道循环中会有什么代码,因此可能会有一个break语句或其他形式的退出循环。对于我的回答,我写道,条件不需要是实例化,它只能读取"而(好){"
你的想法是什么?非常感谢你。
答案 0 :(得分:5)
while (good = true)
是一个无限循环。它会将true
分配给good
,然后评估true
。正确的循环是while (good == true)
或 while (good)
答案 1 :(得分:0)
正如其他人所指出的那样,问题在于,每次循环迭代时,你都重新分配商品的价值。
这正是许多专业开发人员将向后语句写成
的原因while ( true == good )
vs
while ( good == true )
和
if ( null == a )
vs
if ( a == null )
原因是,如果发生拼写错误,例如您的问题中发布的拼写错误,
while ( true = good )
if ( null = a )
会抛出编译器错误,因为您正在尝试为常量赋值。