Alguem poderia me ajudar com esse problema

2 respostas
java
A

gostaria que nesse Scanner int quando alguem botasse algo que nao devia retornasse do inicio para que ele botasse a resposta certa mas quando chega no erro so exibe a menssagem e acaba o pograma

public class Funçao{

Scanner sc = new Scanner(System.in);

int x;

boolean  sim = true;

public void loop() {

while(sim) {

System.out.print(digite um numero:);
try {
		  x = sc.nextInt();
		} catch (InputMismatchException erro ){
			System.out.printf("erro %nDigite um numero%n");return;}

	System.out.println("fim");
	sc.close();break;}
}
public static void main (String[] args){
	Funçao fun = new Funçao();
	fun.loop();

}}

2 Respostas

staroski
public class Funcao {
	
	public static void main(String[] args) {
		Funcao funcao = new Funcao();
		funcao.loop();
	}
	
	private final Scanner scanner = new Scanner(System.in);

	public void loop() {
		while (true) {
			System.out.print("digite um numero: ");
			try {
				int x = Integer.parseInt(scanner.nextLine());
				System.out.println("fim");
				return;
			} catch (InputMismatchException erro ) {
				System.out.println("erro!");
			}
		}
	}
}
A

muito obrigado staroski ajudou muito

Criado 24 de março de 2020
Ultima resposta 24 de mar. de 2020
Respostas 2
Participantes 2