Сравнение строк, проходящих через оператор if, когда не должно - PullRequest
0 голосов
/ 02 августа 2010

Я сравниваю значения листа Excel с записью значений, возвращаемых из базы данных, и одна запись проходит через оператор if, когда она должна завершиться ошибкой оператора if.

Оператор if выглядит следующим образом:

if (record.value.equals(cellVal) == false)

    {
        record.value = cellVal
        record.modifyUser = userId
        //dataService.updateManualEntry(record)
        println "UPDATING ${record.value.equals(cellVal)}"
        println "record value: ${record.value}"                                 
        updatedCount++
        }else{
            println "NOT UPDATING [ [ ${record.value.length()} ]  + [${cellVal.length()}]"

        }

            }

println показывает, что значение println "UPDATING ${record.value.equals(cellVal)}" оценивается как истинное, и в этом случае я не понимаю, почему оно проходит черезоператор if.Кроме того, длина строки равна 0.

Могу ли я получить вторую пару глаз и выяснить, почему истинное значение может пройти через оператор if?

Ответы [ 5 ]

4 голосов
/ 02 августа 2010

Ваши printlns происходят после вы изменили значение, чтобы соответствовать.

3 голосов
/ 02 августа 2010

Здесь:

record.value = cellVal

Вы установили значение record.value для cellVal внутри блока if.Вот почему println возвращает true.

2 голосов
/ 02 августа 2010

println показывает истинный becoz 1-й строки в вашем операторе if

record.value = cellVal

попробуйте напечатать то же значение перед оператором if.

2 голосов
/ 02 августа 2010
(true == false) ⇒ false
0 голосов
/ 02 августа 2010

if -> record.value.equals (cellVal) дают вам false u сравнивать (false) == false, естественно false всегда всегда = false, следовательно, оно пройдет через

2nd, посмотрите на ваш код,

record.value = cellVal

record.modifyUser = userId

// dataService.updateManualEntry (запись)

println«ОБНОВЛЕНИЕ $ { record.value.equals (cellVal)

U назначить record.value = cellVal перед выполнением печати.Потому что это будет печатать правда.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...