[英]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种类别的范围
在类级别定义变量时,该变量将可用于该类中的所有方法。
当您在方法中定义变量时,该方法内的所有循环/条件检查都可以访问该变量,即for,while和if语句内部。
当在for,while和if语句中定义变量时,只能在该循环内访问该变量(将其视为方法内部的方法,并且该变量仅可用于定义该方法的方法。)
希望对理解范围有所帮助。
我的问题是:是否可以以某种方式在循环内声明变量,使其在循环外可用?
不,不可能。
如果这不可能,我想知道如何在循环外声明shortTable []并使用sc.nextLine()。toCharArray();。 在里面。
如果您打算在循环外使用shortTable [],则不必在循环内声明它。 只需在循环外声明即可。 这样做还允许您在循环中使用它。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.