Amigos, quando uso o método nextLine() da classe Scanner em um loop tipo while acontece um problema A PARTIR DA SEGUNDA ITERAÇÃO (segunda entrada no laço while): ao invés de surgir na tela a 1ª solicitação (“Digite seu nome”) aparecem as 2 ao mesmo tempo, uma em baixo da outra. Assim:Digite seu nome
Digite sua idade
Adaptem e executem esse código por favor para melhor entendimento:
… linhas de praxe…
Scanner dados=new Scanner(System.in);
String nome="";
int contador=1, idade=0;
while (contador<=3)
{
System.out.println(“Digite seu nome:”); nome=dados.nextLine();
System.out.println(“Digite sua idade:”);
idade=dados.nextInt(); contador=contador+1;
}
…outras linhas escrevem os 3 nomes com as idades…
Obs.: O erro só surge a partir da 2ª entrada no loop (while). Agradeço a quem puder me ajudar.
import java.util.Scanner;
class Scan{
public static void main(String args[]){
Scanner dados = new Scanner(System.in);
String nome="";
int contador=1, idade=0;
while (contador<=3)
{
System.out.print("Digite seu nome:");
nome=dados.next();
System.out.print("\nDigite sua idade:");
idade=dados.nextInt();
contador=contador+1;
}
}
}
flw!! agora eu esqueci pq exatamente o nextLine faz isso vi isso qdo tava bem no inicio q ja tive esse problema mais nao lembro perfeitamente a teoria pq acontece quem puder ai dar esse help… seria bom… se nao to enganado o nexLine == vá para proxima linha ai ele vai chega na proxima encontra um println ai ele vai e pula como a proxima linha nao tem nada a respeito de ir para outra linha ele fica ali esperando… vc digitar por isso… nao tenho certeza…
import java.util.Scanner;
class Scan{
public static void main(String args[]){
Scanner dados = new Scanner(System.in);
String nome="";
int contador=1, idade=0;
while (contador<=3)
{
System.out.print("Digite seu nome:");
nome=dados.next();
System.out.print("\nDigite sua idade:");
idade=dados.nextInt();
contador=contador+1;
}
}
}
flw!! agora eu esqueci pq exatamente o nextLine faz isso vi isso qdo tava bem no inicio q ja tive esse problema mais nao lembro perfeitamente a teoria pq acontece quem puder ai dar esse help… seria bom… se nao to enganado o nexLine == vá para proxima linha ai ele vai chega na proxima encontra um println ai ele vai e pula como a proxima linha nao tem nada a respeito de ir para outra linha ele fica ali esperando… vc digitar por isso… nao tenho certeza…[/quote]
Caro Camilo, como você escreveu funciona. Entretanto, o método next( ) de Scanner só recebe entrada sem espaços. Se alguém entrar com “marcia braga”, por exemplo, o “braga” é perdido. Por isso é que preciso usar o nextLine( ). Mesmo assim, obrigada.
ae galera olha para quem estar com duvida no nextline posso tirar agora.
sempre quando estiver algum atributo do objeto sendo inteiro ou long primeiro e logo em seguida uma String logo abaixo do atributo inteiro ou long coloque um nextLine exemplo:
package visao;
import java.util.Scanner;
import modelo.Cliente;
import modelo.Endereco;
import modelo.Telefone;
public class Principal {