Mostre o código mais completo, principalmente onde você está declarando, construindo e inicializando a variável bomba.
Dica: o correto é distribuir.
C
cadu0220
eu to declarando o bomba la em cima… como publica…
to delcarando assim
int [] bomba = new int[10];
so q eu tenho q sortear numeros randomicos de 0-99 dentro dela q nao sejam iguais… dai me disseram pra usar o linearSearch daquela forma q eu usei… mais da aquele erro loco
OBS: hahahahahaha erro de portugues tosco hahahaha
Y
Yky_Mattshawn
Cara, não tenho certeza, mas acredito que o problema esteja no fato de que os valores de bombas ainda não foram configurados.
O método fill preenche todas as posições do array com o valor especificado. Na chamada a
Arrays.fill(bombas, -1);
Você está preenchendo todas as posições do array bombas com o valor -1, isso garante que, ao chamar o linearSearch(), todas as posições do array terão algum valor.
P.S.: que código mais horrível que fiz aí em cima, um while sem corpo, onde já se viu! hehe
C
cadu0220
eu usei assim.. preenchendo o array antes.. e deu o msm erro.. axo q nao é isso.. axo q é algo na formulçao do linearSearch() sei la.. pq ta igual no livro da deitel.. ele faz assim msm..
Cara, tentei compilar e percebi que o método linearSearch não faz parte do Java, hehehe, é um método implementado?
entao cara… nem sei se é implementado… no livro da Deital ta ele normal… nao tm nenhum import la em cima especial pra ele e tal…
ele ta usando normal…
Y
Yky_Mattshawn
Qual capítulo do livro?
C
cadu0220
cap. 16
tm um exercicio dele usando isso exatamente na pag 585…
eu tirei de la pra usa =)
Y
Yky_Mattshawn
Achei.
Cara, se tu olhares no exemplo ele está implementando uma classe chamada LinearSearch. E esta classe é que contém o método linearSearch, ou seja, ele é que implementou o método! Só que tu estás chamando o linearSearch em um objeto array nativo.
Faça o seguinte, coloque este método no teu código:
privateintlinearSearch(int[]arr,intval){
for(inti=0; i < arr.length; i++){
if(i==val){return(i); }}
return(-1);}
E substituia aquele teu:
...=bombas.linearSearch(...);
Por
...=linearSearch(bombas,...);
C
cadu0220
deu certo!!
mais qnd rodei aconteceu isso:
Exception in thread “main” java.lang.StackOverflowError
C
cadu0220
o qq eh esse erro? nunca deu cmg =(
Y
Yky_Mattshawn
Se eu não me engano isso ocorre com uma sobrecarga de pilha, provavelmente o seu loop está mal estruturado e está causando chamadas recursivas excessivamente.
C
cadu0220
é... mudei o codigo e arrumo aquilo.. mais cara.. o codigo funfa mais nao faz o q eu qro ¬¬
so q msm assim tm mais de uma bomba no msm lugar ¬¬
era pra ele analisa o array bomba, ver se tm algm cm o numero.. se tiver ele executa de novo isso.. ate dar -1 q eh qnd nao tm um numero desse no array... so q nao ta dando certo =(
Y
Yky_Mattshawn
Cara, deixa como eu havia falado:
i < bomba.length
e não i < 10, pq aih no dia que tu alterar o número de bombas terá de sair procurando no código onde tem o número, nesse caso teria que alterar 2 valores ao invés de um, o que é algo extremamente inútil. E quanto ao código, eu já havia postado né?!