Bom dia/Boa tarde/ Boa noite. Eu estou com um probleminha no meu código, pois assim que o compilo o do while simplesmente não permite que eu escreva a opção se quero ou não continuar.
Dessa forma assim que eu digito o numero ele logo segue para o sout abaixo.
MEU CODIGO:
Scanner t = new Scanner(System.in);
int n, s = 0;
String resp;
do {
System.out.println("Insira um número");
n = t.nextInt();
s += n;
System.out.println("Quer continuar? [S/N] ");
resp = t.nextLine();
} while(resp.equals("S"));
System.out.println("A Soma dos números é: "+s);
QUANDO COMPILO:
Insira um número
3
Quer continuar? [S/N]
A Soma dos números é: 3
No seu código, ao executar nextInt e entrar com a informação, o scanner leu o número informado + o caractere de nova linha (do enter que vc apertou para enviar o número). Em seguida, quando o nextLine é executado, ele vai ler a quebra de linha que restou da última entrada e, por isso, já vai sair do while (pois quebra de linha é diferente de S).
Para resolver, vc pode mudar a leitura do número para ficar assim:
n = Integer.parseInt(t.nextLine());
Isso fará com que a quebra de linha já seja lida pelo scanner deixando o buffer vazio para a próxima leitura (se vc ler o link que passei, tem um bom exemplo explicando lah). Flws!
Muito obrigada, eu vou dar uma olhada na diferença e vou tentar seu método, dei uma olhada e apenas modificando o nextLine() para next() resolveu, mas vou tentar assim também. Novos métodos de resolver problemas nunca e demais
Mudar para next funciona pois ele não espera uma quebra de linha para prosseguir, já o nextLine sim (que é a quebra de linha que sobrou da leitura anterior)