[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
Scanner scanner = new Scanner(System.in);
String nome;
int codigo;
char sexo;
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:
char sexo = 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.)
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);
[quote=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);[/quote]
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?!
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.
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.
[quote=windsofhell][quote=v0x][editado]
dúvida no 6 post!!![/quote]
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.
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…
[quote=v0x][quote=windsofhell][quote=v0x][editado]
dúvida no 6 post!!![/quote]
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[/quote]
Vlw, já fiz isso… E ai alguém pode ajudar?[/quote]
Vc nao pode fazer algo assim:
Console console = System.console();
String nome= console.readLine("Nome do vendedor: ");