Java布尔值在if语句中不使用断点

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声明,并提醒,即使输入是完全一样的.

有人知道为什么会这样吗?

Jon*_*eet 6

这个:

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.

通过使用断点输入数据并不是很清楚你的意思,但从根本上说问题出在你的代码中.