java中的动态作用域变量?(也称为每个方法执行一个变量)

java中的动态作用域变量?(也称为每个方法执行一个变量),java,recursion,scoping,Java,Recursion,Scoping,我想知道在java中是否可以声明一个方法执行的局部变量 例如,如果我在做一些递归的事情,并且我想保持各种计数器特定于方法的一个特定执行 我不知道正确的英语表达…这是Java默认的工作方式。例如,在以下方法中: void method() { int i = 0; // this int is local to 'method' } void recursive(int i) { int localI = 6; i-= 1; if (i > 0) { rec

我想知道在java中是否可以声明一个方法执行的局部变量

例如,如果我在做一些递归的事情,并且我想保持各种计数器特定于方法的一个特定执行


我不知道正确的英语表达…

这是Java默认的工作方式。例如,在以下方法中:

void method()
{
     int i = 0;  // this int is local to 'method'
}
void recursive(int i) {
  int localI = 6;
  i-= 1;
  if (i > 0) {
    recursive(i);
  }

localI将保持方法当前执行的局部性。

我认为您可能在谈论静态变量。
如果您声明一个静态变量,它将在方法执行之间保存它的值。

方法中的普通局部变量正是您的意思。这些局部变量在堆栈上分配。每次调用该方法时,无论是否以递归方式调用,都会创建一个新的变量副本。

可能会添加一个带有所需值的伪代码段/output有趣的是,您知道递归而不是局部变量:p@Kai:同意。在深入研究递归之前,我会确保您了解该语言的基本知识。我的问题很糟糕,我的问题非常愚蠢…我的代码中有一个问题,让我产生了相反的想法。。。谢谢你的邀请answers@Kai:有时你不得不处理你不想处理的事情-我必须使用Java,这是我的负担。有些复杂的东西让我困惑……你是指静态的局部变量,如C或C++。Java中不存在类似的情况。如果在方法所在的类中声明静态变量,则可以在方法调用之间使用该值。对递归非常有用的东西。我试图相信问这个问题的人知道局部变量是什么,在我看来,他问的是与静态成员变量相反的问题;他想要一个“方法执行的局部变量”,即一个普通的局部变量。用四个空格缩进代码,将其格式化为源代码。我还为您添加了一个缺失的},并更正了声明中的一个错误变量名。这必须是您所获得的最简单的50次重复: