• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zabezpieczenie programu przed wprowadzeniem liter zamiast liczb - JAVA

Object Storage Arubacloud
0 głosów
1,632 wizyt
pytanie zadane 4 lutego 2019 w Java przez Hinzeq Użytkownik (860 p.)

Cześć,

próbuję zabezpieczyć program przed wpisaniem liter albo jakichkolwiek innych znaków zamiast liczb (na razie pomijam liczby które mogą mieć 2 lub więcej przecinków, np. 12,43254,124...). 

Chcę do tego użyć metody try/ catch. Niestety wyskakują błędy.

Proszę o pomoc. 
Kod:

public double podajLiczbe() {
		Scanner input = new Scanner(System.in);
		String text = input.nextLine();
		int liczba;
		
		try {
			//liczba = Double.parseDouble(text);
			liczba = Integer.parseInt(text);
		}
		catch(NumberFormatException e){
			System.out.println("Nie podano liczby");
		}
		
		return liczba;
	}

Z góry dzięki,
Pozdrawiam! 

2
komentarz 4 lutego 2019 przez mbabane Szeryf (79,280 p.)
Jakie błędy dostajesz?

1 odpowiedź

0 głosów
odpowiedź 4 lutego 2019 przez Mateusz51 Nałogowiec (28,180 p.)
Problem wynika z tego, że nie zainicjowałeś liczby. W przypadku gdy poleci wyjątek do liczby nie zostanie przypisana żadna wartość. A kompilator nie pozwoli Ci odwołać się do inta potencjalnie bez wartości.
komentarz 5 lutego 2019 przez mbabane Szeryf (79,280 p.)
edycja 19 lutego 2019 przez mbabane

To jest typ prosty.

komentarz 5 lutego 2019 przez Mateusz51 Nałogowiec (28,180 p.)
A jakie ma to znaczenie?? Zmienne lokalne nie sa inicializowane zerami albo nullami. One nie istnieja dopoki nie przypiszesz do nich wartosci
komentarz 18 lutego 2019 przez Hinzeq Użytkownik (860 p.)

Sory za tak późną odpowiedź..

Sprawę rozwiązuję w inny sposób, tworzę własną funkcję która porówna mi każdy znak wprowadzony przez użytkownika do liczby {0,1,2,3...}. 

Ale i tak będę musiał się zmierzyć z try/ catch już niedługo :P

Dzięki za odpowiedzi! :)

komentarz 19 lutego 2019 przez mbabane Szeryf (79,280 p.)

A jakie ma to znaczenie?? Zmienne lokalne nie sa inicializowane zerami albo nullami. One nie istnieja dopoki nie przypiszesz do nich wartosci

Umknęła mi ta odpowiedz. No tak racja. 

Podobne pytania

0 głosów
1 odpowiedź 423 wizyt
0 głosów
1 odpowiedź 814 wizyt
pytanie zadane 16 stycznia 2020 w C i C++ przez PaaaV Nowicjusz (140 p.)

92,572 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,959 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...