【发布时间】:2013-10-26 22:27:12
【问题描述】:
我正在尝试创建一个随机大小的 1 和 0 数组。如果我删除它的随机方面并手动输入数组的大小,我可以让程序运行和编译。由于某种原因,当我引入随机实用程序时,我无法编译程序。
导入 java.util.Random;
public class Project1a {
int[][] sample={{0,0,1,1,1},
{1,1,0,1,1},
{1,1,1,0,1},
{0,1,0,1,1}};
int box[][];
Random randomNumbers = new Random();
int m = randomNumbers.nextInt(100);
int n = randomNumbers.nextInt(100);
int results[][] = new int [m][n];
int goodData = 1;
public static void main(String[] args){
analyzeTable();
printTable(results);
}
public void analyzeTable() {
int row=0;
while (row < sample.length) {
analyzeRow(row);
row++;
}
}
public void analyzeRow(int row) {
int xCol = 0;
int rCount = 0;
while (xCol < sample[row].length) {
rCount = analyzeCell(row,xCol);
results[row][xCol] = rCount;
xCol++;
}
}
int analyzeCell(int row, int col) {
int xCol = col;
int runCount = 0;
int rowLen = sample[row].length;
int hereData = sample[row][xCol];
while (hereData == goodData && xCol < rowLen) {
runCount++;
xCol++;
if (xCol < rowLen) { hereData = sample[row][xCol];}
}
return runCount;
}
public void printTable(int[][] aTable ) {
for (int[] row : aTable) {
printRow(row);
System.out.println();
}
}
public void printRow(int[] aRow) {
for (int cell : aRow) {
System.out.printf("%d ", cell);
}
}
}
【问题讨论】:
-
我重命名了这个类,现在我得到了以下错误:找不到第 22、29,45 行的符号结果和 goodData 第 55 行的相同
-
是的,因为这些变量在该块之外无法访问,请参阅我的答案提供了详细信息
-
我修复了所有这些,现在我得到:不能从静态上下文引用非静态方法。但是,如果从主中删除静态,我会得到主方法在类错误中是静态的
-
不,您还没有全部更改,请检查我在此处提到的将
results和goodData声明为静态的答案