繁体   English   中英

使用在循环中声明的变量或在循环外声明它们

[英]Using variables declared in a loop or declaring them outside the loop

我是Java和程序设计的初学者,因此遇到了问题。

int[][]table = new int[numberOfShortTables][legnthOfShortTable]   

for(int i = 0; i < numberOfShortTables; i++) {
    char[]shortTable = sc.nextLine().toCharArray();
    for(int k = 0;k<legnthOfShortTable;k++){
        table[i][k]=shortTable[k];
    } 
}   

稍后在代码中,我需要同时使用table[][]shortTable[]

我的问题是:是否可以以某种方式在循环内声明变量,使其在循环外可用?

如果这不可能,我想知道如何在循环外声明shortTable[]并使用sc.nextLine().toCharArray(); 在里面。

变量的作用域在声明它的代码块内部,所以不,您不能在循环内声明变量,然后在外部使用。

要直接回答您的问题,您需要做的就是首先使用char[]shortTable;在循环外声明var char[]shortTable; 或类似的东西,然后使用shortTable = ...将其分配给循环。 这只是普通的变量作用域,循环没有什么特别的。

您可以使用循环变量本身执行相同的操作。 int i; 几行,然后for (i = 0....

嗨,看来您需要进一步了解一下示波器。

要以现在的方式回答您的问题,您将无法在for循环之后使用char [] shortTable,因此只需将其悬停在for循环上方,便可以使用它。 如果您还需要在其他方法中使用它,请参阅下面的更多信息。 (注意,如果您是初学者,请尽量避免使用静态功能,如果您不理解其中的含义,将给您带来无尽的头痛)100%

简而言之,您会获得3种类别的范围

  • private:这意味着您只能在该类中访问该变量或方法
  • public:这意味着可以从类外部访问任何有权访问实例化对象的变量或方法。
  • protected:这意味着扩展类的任何内容都将能够访问该变量或方法。

在类级别定义变量时,该变量将可用于该类中的所有方法。

当您在方法中定义变量时,该方法内的所有循环/条件检查都可以访问该变量,即for,while和if语句内部。

当在for,while和if语句中定义变量时,只能在该循环内访问该变量(将其视为方法内部的方法,并且该变量仅可用于定义该方法的方法。)

希望对理解范围有所帮助。

我的问题是:是否可以以某种方式在循环内声明变量,使其在循环外可用?

不,不可能。

如果这不可能,我想知道如何在循环外声明shortTable []并使用sc.nextLine()。toCharArray();。 在里面。

如果您打算在循环外使用shortTable [],则不必在循环内声明它。 只需在循环外声明即可。 这样做还允许您在循环中使用它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM