for(int i = 0; i < tab.length; i++){
for(int j = 0; j < tab[i].length; j++){
if(tab[i][j].contains("W")){
if(i-1 >= 0) tab[i-1][j] += "C";
if(i+1 < 4) tab[i+1][j] += "C";
if(j-1 >= 0) tab[i][j-1] += "C";
if(j+1 < 4) tab[i][j+1] += "C";
}
}
}
Galera, Alguem consegue encontra algum erro nessas linhas de codigo?
pois o if de (i+1) ou (j+1) funcionam corretamente, mas os de (i-1) e (j-1) não
Você precisa definir o que é “funcionar corretamente”
Se compila funciona corretamente? Ou algo que não funciona como você espera?
Se for a segunda opção, explique o que é.
Okay, o desejado é em uma matriz 4x4 quando encontrar a Letra W deve adicionar a letra C ao redor,
| A | A | A |
| A | W | A |
| A | A | A |
| A | C | A |
| C | W | C |
| A | C | A |
Mas nesse problema if de linha anterior e coluna anterio simplesmente nao adiconam o C
Já tentou usar um depurador?
O que acontece com o calculo de i-1 e j-1 quando os valores de i ou j foram exatamente iguais a 0?
O sinal deveria ser somente o de >, não >=.
ViniGodoy, Quando o W estiver la linha 0 ou coluna 0 o resultado de i-1 ou j-1 seriam -1, assim ele estaria na borda, ou seja nao preciso fazer nada
mas caso meu i ou j forem 1 o resultado ja é 0, intao preciso adiconar os C na coluna 0 e linha 0
[quote=mrclolveira]ViniGodoy, Quando o W estiver la linha 0 ou coluna 0 o resultado de i-1 ou j-1 seriam -1, assim ele estaria na borda, ou seja nao preciso fazer nada
mas caso meu i ou j forem 1 o resultado ja é 0, intao preciso adiconar os C na coluna 0 e linha 0
[/quote]
Pois é, você precisa botar no seu código um “if” para tratar o caso “na borda, não precisa fazer nada”. Se passar -1, o array vai explodir nesse ponto, já que o Java não aceita índices negativos para arrays. Certo?
Certo, então porque seu if aceita o índice =0?
if(i-1 >= 0) tab[i-1][j] += "C";
O certo seria:
if(i-1 > 0) tab[i-1][j] += "C";
Galera consegui consertar, o codigo do IF esta certo.
Desse jeito eu estava fazendo uma busca em todos as posiçoes da Matriz, Mudei o if para adiconar os C`s no junto ao q adicona o W anterior a isso. ficou ate mais limpo o programa
Obrigado ai pela ajuda o/