Solucao aceita
Lucas_Camara 18 de mai. de 2021 1 like
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…
Prog.Novato 18 de mai. de 2021 1 like
Muito obrigado pela ajuda, no lugar do nextLine coloquei o next e funcionou corretamente.