如何在Java中更改变量的值?

时间:2012-02-11 03:23:09

标签: java variables override

我正在构建一个RPG角色生成器,并且在角色的统计数据上有一个半难的时间。我遇到问题的原因是:

      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 个答案:

答案 0 :(得分:2)

如果编译器说它无法找到符号,那么您正试图将iStrength打印出其范围。您有可能在一个方法中声明变量,为该方法赋予其本地范围,然后尝试稍后在另一个方法中打印它。即使在类的构造函数中声明的变量也是如此。

答案 1 :(得分:1)

您只需要声明变量(使用int关键字或其他类型名称)一次;之后,您可以多次分配(更改其值)。所以,这很好:

      int iStrengthStatPoints = 0;

你需要改变这个:

      int iStrengthStatPoints =  scan.nextInt();

到此:

      iStrengthStatPoints =  scan.nextInt();

答案 2 :(得分:0)

问题不在于更新iStrength的赋值语句。相反,它与声明iStrength的范围有关。更确切地说,iStrength标识符在您尝试打印时超出范围

不幸的是,声明或有问题的打印代码都不在您的代码段中,因此无法准确说明问题是什么以及如何解决问题。甚至猜测问题可能是徒劳的,因为(通常......即没有看到你的代码)有太多的可能性。

如果您想要更好的诊断,请(至少)包括从声明到给出编译错误的代码的所有内容。