【发布时间】:2018-02-12 19:08:58
【问题描述】:
我想检查与我的 two-dimensional 数组的每个位置相邻的第 8 个位置,但第一个位置给了我错误,因为那里没有位置。
如何避免该错误?我以前也遇到过同样的情况,我也解决不了。
我想要做的示例图片:
我的方法代码:
private static void evoluciona(char[][] tauler2, char[][] tauler22) {
for(int i = 0; i < files; i++) {
for(int j = 0; j < columnes; j++) {
tauler2[i][j] = tauler[i][j];
}
}
for(int i = 0; i < files; i++) {
for(int j = 0; j < columnes; j++) {
if(tauler2[i][j] == 'x') {
int cont = 0;
if(tauler2[i-1][j] == '*') {
cont++;
}
if(tauler2[i-1][j-1] == '*') {
cont++;
}
if(tauler2[i-1][j+1] == '*') {
cont++;
}
if(tauler2[i][j-1] == '*') {
cont++;
}
if(tauler2[i+1][j-1] == '*') {
cont++;
}
if(tauler2[i+1][j] == '*') {
cont++;
}
if(tauler2[i+1][j+1] == '*') {
cont++;
}
if(tauler2[i][j+1] == '*') {
cont++;
}
if(cont == 2 || cont == 3) {
tauler2[i][j] = '*';
}
}
else if(tauler2[i][j] == '*') {
int cont = 0;
if(tauler2[i-1][j] == '*') {
cont++;
}
if(tauler2[i-1][j-1] == '*') {
cont++;
}
if(tauler2[i-1][j+1] == '*') {
cont++;
}
if(tauler2[i][j-1] == '*') {
cont++;
}
if(tauler2[i+1][j-1] == '*') {
cont++;
}
if(tauler2[i+1][j] == '*') {
cont++;
}
if(tauler2[i+1][j+1] == '*') {
cont++;
}
if(tauler2[i][j+1] == '*') {
cont++;
}
if(cont == 2 || cont == 3) {
tauler2[i][j] = '*';
}
else {
tauler2[i][j] = 'x';
}
}
}
}
}
【问题讨论】:
-
忽略异常并不能解决问题。
-
确实可以...
-
@Idos 您将教育问题误认为是代码问题。隐藏异常将允许代码在边界情况下运行,但这无助于 OP 了解他的代码在做什么。正如他明确提到的,他以前遇到过这类问题,但不知道如何解决。 Stack Overflow 是关于学习的,而不是“为我修复代码”。
标签: java arrays indexoutofboundsexception