Ola ppl, eu queria saber como é que ponho este codigo a funcar caso o utilizador ponha ou 1 ou 2 ou 3 coordenadas, sem que o progrma fique a espera de mais alguma coisa!
[code]Scanner teclado = new Scanner(System.in);
System.out.println("Tiros:");
Coordenada tiro[] = new Coordenada[3];
tiro[0] = new Coordenada(teclado.next().trim());
tiro[1] = new Coordenada(teclado.next().trim());
tiro[2] = new Coordenada(teclado.next().trim());
for(int i = 0; i != 3; ++i){
if (tabuleiro[tiro[i].getLinha()][tiro[i].getColuna()]>='1' && tabuleiro[tiro[i].getLinha()][tiro[i].getColuna()]<='5'){
System.out.println("Tiro");
}else System.out.println("Agua");
}
[/code]
Se conseguirem usem strings!
Opa! Assim que o objeto da classe Scanner executar o ultimo método next() ele passa para a linha de baixo e continua a execução. O método next que é bloqueante. Se você escrever na linha de comando “a aa aaa” ele vai passar para o seu for sem problemas…
O que está acontecendo que ele fica esperando inputs?
o k acontece é k se eu pusser algo do tipo A1 A2, e dpois nao escrever mais nada ele fica a espera de mais um input! e se eu pusser so A1 ele continua a espera de mais 1 input!
O k eu keria era que isto funcionasse assim, por exemplo:
tiros: A1 A2 A3
e dpois passa logo para o for, sem ficar a espera de mais nada, ou entao
tiros: A1 A2
e dpois passa logo para o for, sem ficar a espera de mais nada, ou entao
tiros: A1
e dpois passa logo para o for, sem ficar a espera de mais nada!
ja pensei em fazer isto com uma string só que nao consigo fazer isto com uma string! nao me podem ajudar?
insere esse código
int i = 0;
while( teclado.hasNext() ) {
if( i == 3)
break;
tiro[i] = new Coordenada(teclado.next().trim());
}
obrigado ppl ja consegui resolver o problema!