基本上,当我移动断点时,这段代码的行为似乎有所不同
int checker = something.length(); /* something is the value of an edittext */
boolean badInput = false;
if(checker == 0)
{
badInput = true;
}
if(checker > 12)
{
badInput = true;
}
*1 if(badInput = false)
{
*2 /* A lot of
code to do
if the
input is GOOD */
}
else
{
/* Alert that the input is BAD */
}
当我使用第一个断点 (1) 在编辑文本中输入2 位数字时,badInput
给出 false,这是应该的。
问题是:当我仅使用第二个断点 (2) 执行完全相同时,代码会转到 else
语句和警报,即使输入完全相同。
有人知道这是为什么吗?
最佳答案
这个:
if(badInput = false)
应该是:
if(badInput == false)
或者最好是:
if (!badInput)
第一个是执行分配,而不是比较。表达式 badInput = false
的总体结果也是分配的值 (false),因此它永远不会进入该 if
的主体。
不太清楚“用”断点输入数据是什么意思,但从根本上来说问题出在您的代码中。
关于Java boolean 值在 if 语句中不带断点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9259123/