ACa*_*ter 0 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 = true;
}
*1 if(badInput = false)
{
*2 /* A lot of
code to do
if the
input is GOOD */
}
else
{
/* Alert that the input is BAD */
}
Run Code Online (Sandbox Code Playgroud)
当我使用第一个断点(1)在edittext中输入一个2位数字时,给出false,就像它应该的那样.badInput
这里的问题是:当我这样做完全一样的,只有第二个断点(2) ,代码进入到else声明,并提醒,即使输入是完全一样的.
有人知道为什么会这样吗?
这个:
if(badInput = false)
Run Code Online (Sandbox Code Playgroud)
应该:
if(badInput == false)
Run Code Online (Sandbox Code Playgroud)
或者最好:
if (!badInput)
Run Code Online (Sandbox Code Playgroud)
第一个是执行任务,而不是比较.表达式的整体结果badInput = false也是赋值(false),因此它永远不会进入该体的主体if.
通过使用断点输入数据并不是很清楚你的意思,但从根本上说问题出在你的代码中.
| 归档时间: |
|
| 查看次数: |
249 次 |
| 最近记录: |