Java boolean在if语句中不使用断点
基本上,当我移动断点时,这段代码的行为似乎有所不同Java boolean在if语句中不使用断点,java,if-statement,boolean,Java,If Statement,Boolean,基本上,当我移动断点时,这段代码的行为似乎有所不同 int checker = something.length(); /* something is the value of an edittext */ boolean badInput = false; if(checker == 0) { badInput = true; } if(checker > 12) { badInput = tr
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的edittext中输入一个2位数时,badInput会给出false,这是应该的
问题是:当我只对第二个断点2执行完全相同的操作时,代码会转到else语句,并发出警报,即使输入完全相同
有人知道为什么会这样吗?这是:
if(badInput = false)
应该是:
if(badInput == false)
或者更喜欢:
if (!badInput)
第一种是执行赋值,而不是比较。表达式badInput=false的整体结果也是指定为false的值,因此它永远不会进入该if的主体
使用断点输入数据的含义并不十分清楚,但基本上问题在于代码中。您应该:
if(!badInput)
或
第一个更好简单的打字错误
if(badInput = false)
应该是
if(badInput == false)
你想要一个比较而不是赋值。你用==运算符检查布尔变量的是什么?!! 您必须检查以下各项:
if(!badInput) //for false value
or
if(badInput) //for true value
不知道这是否与断点的问题有关,但是如果badInput=false,则应该是如果badInput=false,或者更好,如果!输入错误。
if(!badInput) //for false value
or
if(badInput) //for true value