Laço para Scanner?

2 respostas
T

Mais uma dúvida.
Existe alguma método da classe Scanner que verifica se existe uma nova entrada de dados e caso não tenha ele saia do laço?
Eu fiz um exemplo, mas acredito, que deva ter algum método que verifica se existe uma nova entrada de dados:

Scanner in = new Scanner(System.in);
		
System.out.println("Digite um valor: ");
valor = in.nextInt();
		
while (valor != -1 ) {
	listaModa.add(valor);
	System.out.println("Digite um novo valor: ('-1' para sair)");
	valor = in.nextInt();
}

O máximo que eu poderia fazer, é comparar se não for númerico, sai do laço? Ou caso, não digite nenhum valor e pressionar apenas Enter ("valor != \r"), sai do laço, é isso? Só que neste caso a variável valor teria que ser String para receber \r, correto?

2 Respostas

shoko
Scanner in = new Scanner(System.in);   
           
System.out.println("Digite um valor: ");   
valor = in.nextInt();   
           
while (valor != null ) {   
    listaModa.add(valor);   
    System.out.println("Digite um novo valor: ('-1' para sair)");   
    valor = in.nextInt();   
}

acho que se voce colocar o while(valor!=null) dá certo, se eu entendi é isso que você quer né?

T

Seria outra forma, mas isso no caso se eu estivesse trabalhando com String e não com int, correto?
Acredito que achei o método que eu queria:

System.out.println("Digite um novo valor: ('S' para sair)");
while (in.hasNextInt() == true) {	    
	valor = in.nextInt();
	listaModa.add(valor);
	System.out.println("Digite um novo valor: ('S' para sair)");
			
}
Criado 1 de julho de 2008
Ultima resposta 1 de jul. de 2008
Respostas 2
Participantes 2