【发布时间】:2016-12-08 13:50:38
【问题描述】:
我是 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();。
【问题讨论】:
-
那么sc是什么?
-
char[] shortTable; for(int i=0;i<numberOfShortTables; i++){ shortTable = sc.nextLine().toCharArray(); ...} -
循环外:
char[] shortTable;循环内:shortTable = sc.nextLine().toCharArray(); -
请注意
table[][]包含来自shortTable[]的所有数据,例如table[0]与shortTable[]的内容完全相同,因此循环后可能不需要后者。 -
如果你不能确保 shortTable 的长度总是大于 legnthOfShortTable 你的程序会抛出 * java.lang.ArrayIndexOutOfBoundsException*