Como é que faço?

4 respostas
S
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!
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");
		}

Se conseguirem usem strings!

4 Respostas

BrunoBastosPJ

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?

S

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?

BrunoBastosPJ

insere esse código

int i = 0;
      while( teclado.hasNext() ) {
         if( i == 3)
            break;
         tiro[i] = new Coordenada(teclado.next().trim());
      }
S

obrigado ppl ja consegui resolver o problema!

Criado 6 de dezembro de 2006
Ultima resposta 6 de dez. de 2006
Respostas 4
Participantes 2