Wątek przeniesiony 2014-06-01 09:19 z Java przez bogdans.

Sprawdzanie wyjątków w pętli

0

Napisałam program obsługujący wyjątek.

Chce pobrać liczbę jako string, konwertuje za pomocą funkcji na String.

Jeśli zamiast liczby ktoś poda jakieś litery to ma się odbyć obsługa wyjątków, mam to ale nie jest takie jakie bym chciała, chciałabym aby po podaniu błędnej wartości wczytać znowu, jeśli dalej jest błąd to to samo.

na razie mam że tylko jeden raz mi sprawdza.

Nie czuję się jeszcze w tym biegle, czuje że chyba powinna być tu jakaś pętla, ale nie bardzo wiem jak to zapisać.

O to mój kod:


import java.util.Scanner;

public class Podaj_liczbe{

public static void main(String args[])
{
String liczba;
//String liczba="11";
int docelowa_liczba;
Scanner odczyt = new Scanner(System.in);
 int liczba_prawdziwa;
try { liczba=odczyt.nextLine();
liczba_prawdziwa= Integer.parseInt(liczba);  } 
catch (NumberFormatException e) 
{ System.out.println("Niepoprawny parametr "); System.out.println("Podaj inną liczbę z dobrym fomratem");

liczba=odczyt.nextLine();
liczba_prawdziwa= Integer.parseInt(liczba); }

docelowa_liczba=(liczba_prawdziwa * liczba_prawdziwa);
System.out.println("Liczba to "+liczba_prawdziwa);
System.out.println("A potęga to "+docelowa_liczba);
}


}

1

Możesz np z break i continue:

while(true) {
	try { 
		liczba=odczyt.nextLine();
		liczba_prawdziwa= Integer.parseInt(liczba);  
		break;
	} catch (NumberFormatException e) { 
		System.out.println("Niepoprawny parametr "); 
		System.out.println("Podaj inną liczbę z dobrym fomratem");
		continue;
	}
}
docelowa_liczba=(liczba_prawdziwa * liczba_prawdziwa);
System.out.println("Liczba to "+liczba_prawdziwa);
System.out.println("A potęga to "+docelowa_liczba);

1 użytkowników online, w tym zalogowanych: 0, gości: 1