Boa noite pessoal estou estudando array, to com um exercício que e pra ler o sexo,altura,idade de 3 pessoas usando array, fiz o seguinte:
Usei o debug pra acompanhar o passo a passo e percebi que na primeira execução do meu for ele ler e armazena tudo certinho, ja na segunda vez ele não ler mais nenhum e nem armazenar.
Provavelmente o problema é com o uso do nextFloat e nextInt . Dá uma lida:
O scanner recupera a entrada dos dados em partes, e essas partes são delimitadas por espaço em branco por padrão. Com isso, ao usar next retorna o texto até encontrar esse delimitador, ou seja, ao digitar “asdf asdf asdf”, o valor capturado será apenas “asdf”.
Ex.:
String next = teclado.next(); // entrada: "asdf asdf asdf"
System.out.println(next); // saida: "asdf"
Já com o nextLine, o delimitador é uma quebra de linha. Com isso, todo o texto informado será recuperado até que uma quebra de l…
Quando você chama o nextInt() e pressiona ENTER, o Scanner lê o número inteiro, mas não consome o caractere '\n' que vem após ele.
Quem consome o '\n' é o nextLine(), por isso quando você digita um texto após o nextInt() e pressiona ENTER e em seguida chama o nextLine(), você recebe uma String vazia pois o nextLine() vai primeiro consumir aquele '\n' que ficou “pendurado” após o nextInt().
Para programas em linha de comando, como este seu exercício, eu recomendo não utilizar o nextInt(), ao in…
1 curtida
Muito obrigado pela ajuda, no lugar do nextLine coloquei o next e funcionou corretamente.
1 curtida