Repetiçao

por que meu repetir não recebe meu ler.nextlaine. o programa morre na linha 16 a anterior.

package bb;

import java.util.Scanner;

public class Banco {

	int banc = 0;
	int dep = 0;

	Scanner ler = new Scanner(System.in);
	String resp;
	String repetir;

	public void açao() {
		System.out.println("ve tem no banco : "+banc);
		System.out.println("Deseja depositar?");
		resp = ler.nextLine();
		
		do {
			if (resp.equals("sim")) {
				repetir = "";
				deposito();
				
				System.out.println("Ainda deseja depositar no banco?");
				repetir = ler.nextLine();
			} else {
				System.out.println("OK, tenah uma boa tarde então!");
			}
		} while(repetir.equals("sim"));
	}
	
	public void deposito() {
		System.out.println("Qual valor?");

		dep = ler.nextInt();
		banc += dep;

		System.out.println("Você agora tem : " + banc);
	}
}

Aqui você vai digitar um número e depois pressionar ENTER, certo?
O problema é que o nextInt() não lê esse “ENTER” (o new line), continua na memória.

Aí quando volta para esse nextLine() já tem algo a ser lido (o enter que sobrou).

Duas opções:
Chame um nextLine() logo após o nextInt(), só para limpar.
Ou use Integer.parseInt(ler.nextLine()) para pegar o número.

ee mesmo cara brigadao, coisa da idade acho kkkkkk to caducando.

1 curtida