[editado]
A resposta do amigo do post 5 funcionou, mas eu não queria fazer uma gambiarra dessas, queria entender o problema de fato até porque isso não é um programa que eu vou vender ou que o prof vai cobrar, é só a nível de estudo, então gambiarras não teriam sentido
Scannerscanner=newScanner(System.in);Stringnome;intcodigo;charsexo;do{System.out.println("Digite o código do vendedor: ");codigo=scanner.nextInt();System.out.println("Digite o nome do vendedor: ");nome=scanner.nextLine();System.out.println("Escolha o sexo: M ou F");sexo=scanner.next().charAt(0);//continua...
O erro é que dessa forma qnd eu ponho pra rodar ele pede a variável código, ai depois de inserir, ele pede a variável nome e em seguida pede o sexo, ignorando o scanner.nextLine, ou seja, o vendedor está ficando sem nome…
O típico caso do reaproveitamento de variáveis. Variáveis locais são baratas, não as reaproveite:
charsexo=0;
...
sexo=scanner.next().charAt(sexo);
O que acontece com o segundo vendedor ou vendedora? (Dica: se você não digitou absolutamente nada errado, o valor de sexo vai para ‘M’, cujo código Unicode é ‘\u004D’ ou em decimal 77, ou para ‘F’, cujo código Unicode é ‘\u0046’, ou em decimal 70.)
Eric_Yuzo
Só complementando a resposta do amigo bezier curve.
Para resolver o erro de pular o nome tente usar o método next():
System.out.println("Digite o nome do vendedor: ");
nome = scanner.next();
Já para receber o sexo, sempre será a primeira letra que interessa. Portanto nem precisaria de variável, passe 0 como parâmetro do charAt:
System.out.println("Escolha o sexo: M ou F");
sexo = scanner.next().charAt(0);
V
v0x
Eric Yuzo:
Só complementando a resposta do amigo bezier curve.
Para resolver o erro de pular o nome tente usar o método next():
System.out.println("Digite o nome do vendedor: ");
nome = scanner.next();
Já para receber o sexo, sempre será a primeira letra que interessa. Portanto nem precisaria de variável, passe 0 como parâmetro do charAt:
System.out.println("Escolha o sexo: M ou F");
sexo = scanner.next().charAt(0);
A resposta pro segundo problema funcionou vlw, mas a do primeiro a sua resposta não serve, pois eu tentei dessa forma antes, o problema é que assim ele não “pega” o espaço, ou seja, qnd eu digito “José da Silva” ele só pega o José… Alguém tem outra solução?!
Eric_Yuzo
Foi mal, interpretei sua dúvida errado.
Se o problema é que o nextLine está sendo ignorado, tente executá-lo duas vezes.
System.out.println("Digite o nome do vendedor: ");
scanner.nextLine();
nome = scanner.nextLine();
É meio que uma gambiarra, mas até descobrir o problema deve funcionar.
V
v0x
[editado]
V
v0x
Alguém???
W
windsofhell
v0x:
[editado]
dúvida no 6 post!!!
Soh uma dica:
Talvez tivesse sido melhor deixar a pergunta inicial aqui no topic, porque pode ficar um pouco confuso.
Eu mesmo entrei aqui para tentar ajudar mas nao tive paciencia (nem tempo) de fica cacando o post 6.
//Daniel
V
v0x
windsofhell:
v0x:
[editado]
dúvida no 6 post!!!
Soh uma dica:
Talvez tivesse sido melhor deixar a pergunta inicial aqui no topic, porque pode ficar um pouco confuso.
Eu mesmo entrei aqui para tentar ajudar mas nao tive paciencia (nem tempo) de fica cacando o post 6.
//Daniel
Vlw, já fiz isso… E ai alguém pode ajudar?
J
JohannNehring
Não sei se você quer obrigatoriamente usar Scanner, mais caso possa mudar, recomendo usar JOptionPane.showInputDialog, que independe do console interno…
Não tenho idéia de como resolver esse problema do Scanner, mais estou pesquisando. Qualquer coisa retorno aqui…
[EDIT]
Testando localmente aqui, tentei reordenar os inputs colocando o de String no inicio, e funcionou…
Qualquer coisa tente fazer algo parecido…
W
windsofhell
v0x:
windsofhell:
v0x:
[editado]
dúvida no 6 post!!!
Soh uma dica:
Talvez tivesse sido melhor deixar a pergunta inicial aqui no topic, porque pode ficar um pouco confuso.
Eu mesmo entrei aqui para tentar ajudar mas nao tive paciencia (nem tempo) de fica cacando o post 6.
//Daniel
Vlw, já fiz isso… E ai alguém pode ajudar?
Vc nao pode fazer algo assim:
Consoleconsole=System.console();Stringnome=console.readLine("Nome do vendedor: ");