我是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();
。
答案 0 :(得分:0)
变量的范围在声明它的代码块中,所以不,你不能在循环中声明变量然后使用在外面。
答案 1 :(得分:0)
要直接回答您的问题,您需要做的就是首先使用char[]shortTable;
或类似的东西在循环外声明var,然后使用shortTable = ...
在循环内分配它。这只是正常的变量范围,循环没有什么特别之处。
你可以用循环变量本身做同样的事情。 int i;
几行,然后是for (i = 0....
。
答案 2 :(得分:0)
嗨所以看起来你需要稍微阅读一下范围..
为了回答你的问题你现在的方式你将无法在for循环之后使用char [] shortTable,所以只需将它提升到for循环之上,你就可以使用它了。如果您需要在其他方法中使用它,请参阅下面的更多信息。 (注意尽可能避免静电作为初学者,如果你不理解100%的含义,它会给你带来无尽的麻烦)
简而言之,您可以获得3种类型的Classes范围
当您在类级别定义变量时,它们将可用于该类中的所有方法。
当您在方法中定义变量时,该方法中的所有循环/条件检查都可以访问它,即in for,while和if语句。
当你在for,while和if语句中定义变量时,变量只能在该循环中访问(将其视为方法内的方法,变量仅可用于定义它的方法。)< / p>
希望有一点了解范围。
答案 3 :(得分:0)
我的问题是:是否有可能以一种方式在循环内声明一个变量,它可以在它之外使用吗?
不,不可能。
如果不可能,我想知道如何在循环外声明shortTable []并使用sc.nextLine()。toCharArray();在里面。
如果您计划在循环之外使用它,则不必在循环内声明shortTable []。只需在循环外声明它。这样做也允许你在循环中使用它。