Duvida com array de String

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 &gt;= 0) tab[i-1][j] += &quot;C&quot;;  

O certo seria:

if(i-1 &gt; 0) tab[i-1][j] += &quot;C&quot;;  

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/