OnLearn Ответов: 2

Почему значение моей переменной всегда равно -1?


private void btnCalculateMouseClicked(java.awt.event.MouseEvent evt) {                                          
        String hexNumber;
        int decNumber = 0;
        int counter;

        hexNumber = txtHexNumber.getText();

        for (counter = (hexNumber.length() - 1); counter >= 0; counter--);
        {
            System.out.println(counter);
        }
        txtDecNumber.setText(decNumber + "");
    } 


Неважно, насколько длинна строка hexNumber, значение счетчика всегда равно -1!
Но я не понимаю почему!

Что я уже пробовал:

Я попытался запустить код в одношаговом режиме, но не смог найти проблему.

[no name]

Возьмем точку с запятой из конца вашей линии.

2 Ответов

Рейтинг:
9

Patrice T

Проблема заключается в полуприцепе в конце этой линии.

for (counter = (hexNumber.length() - 1); counter >= 0; counter--);


Вы должны научиться использовать отладчик как можно скорее. Вместо того чтобы гадать, что делает ваш код, пришло время увидеть, как он выполняется, и убедиться, что он делает то, что вы ожидаете.

Отладчик-Википедия, свободная энциклопедия[^]
Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]

Отладчик здесь для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.
В отладчике нет никакой магии, он не находит ошибок, он просто помогает вам. Когда код не делает того, что ожидается, вы близки к ошибке.


Рейтинг:
18

Peter Leow

Виновником является та точка с запятой, которая завершает ваш цикл:

for (counter = (hexNumber.length() - 1); counter >= 0; counter--);


OnLearn

Большое вам спасибо! Это маленькие ошибки, которые вы не найдете за несколько часов!

Peter Leow

Добро пожаловать.