Как изменить значение переменной в Java? - PullRequest
0 голосов
/ 11 февраля 2012

Я строю генератор персонажей РПГ и у меня сложное время со статистикой персонажа.Причина, по которой у меня возникают проблемы, заключается в следующем:

      int base = 10;

      int iStrengthStatPoints =  scan.nextInt();

      int iStrength = (base +iStrengthStatPoints);

Он не скомпилируется, потому что я вывожу переменную "iStrength" позже в своем коде и он говорит, что не может найти символ.Я понимаю, что это связано с тем, что для iStrength установлено значение base + iStrengthStatPoints.Поэтому мне интересно, есть ли способ, которым я могу присвоить начальное значение iStrengthStatPoints, а затем иметь возможность ввести новое значение позже.

Я думал, что-то вроде этого:

      int iStrengthStatPoints = 0;

      int iStrengthStatPoints =  scan.nextInt();

Это будет иметь базовое значение 0, но позже я могу ввести переопределяющее значение.Это возможно?Если нет, то есть ли способ сделать что-то подобное?

Ответы [ 3 ]

2 голосов
/ 11 февраля 2012

Если ваш компилятор говорит, что не может найти символ, вы пытаетесь вывести iStrength из его области видимости.Скорее всего, вы объявляете переменную в одном методе, назначаете ей локальную область видимости для метода, а затем пытаетесь распечатать ее позже в другом методе.Это будет верно даже для переменных, объявленных в конструкторе класса.

1 голос
/ 11 февраля 2012

Вам нужно только объявить переменную (используя ключевое слово int или другое имя типа) один раз; после этого вы можете присвоить ему (изменить его значение) много раз. Итак, это нормально:

      int iStrengthStatPoints = 0;

и вам просто нужно изменить это:

      int iStrengthStatPoints =  scan.nextInt();

к этому:

      iStrengthStatPoints =  scan.nextInt();
0 голосов
/ 11 февраля 2012

Проблема не в операторе присваивания, который обновляет iStrength. Скорее, это с охватом декларации iStrength. Точнее, iStrength идентификатор выходит за рамки в тот момент, когда вы пытаетесь его напечатать.

К сожалению, ни декларация, ни проблемный код печати отсутствуют в вашем фрагменте кода, поэтому невозможно точно сказать, в чем проблема и как ее исправить. Даже гадать, в чем может быть проблема, бесполезно, потому что есть (в общем ... то есть не видя ваш код) слишком много возможностей.

Если вам нужна более точная диагностика, включите (по крайней мере) все, начиная с объявления и заканчивая кодом, сообщающим об ошибке компиляции.

...