Skocz do zawartości
Hawk2

[rozwiązane][java]problem Z Zadaniem - "empty String"

Rekomendowane odpowiedzi

import java.io.*;public class zad3 {																/**	 * @param args	 */	public static void main(String[] args) throws IOException{		// TODO Auto-generated method stub		String linia_z_konsoli;												//deklarujemy zmienna 'linia_z_konsoli' typu string czyli tekstowego		int licz=0;															//		double liczba;														//		InputStreamReader bajt_znak = new InputStreamReader(System.in);		//		BufferedReader dana_wejsciowa = new BufferedReader(bajt_znak);		//buforujemy wczytywane dane		double tab1[]=new double[1000];										//tworzymy tablice o rozmiarze 1000		wyjdz:																//zaznaczamy poza ktora petle ma wyjsc 'break'		for (int i=0;i<1000;i++){											//dla i<n wykonaj[a po wykonaniu zwieksz 'i' o 1]:			System.out.print("Podaj liczbe:");								//wypisujemy odpowiednia prosbe			linia_z_konsoli=dana_wejsciowa.readLine();						//do zmiennej 'linia_z_konsoli' wpisujemy to, co podaje uzytkownik			if(linia_z_konsoli==""){										//jezeli nie wpiszemy zadnej liczby, wykonaj:				break wyjdz;												//wychodzimy z petli przed ktora ustawilismy 'wyjdz'			}			liczba=Double.parseDouble(linia_z_konsoli);						//konwertujemy zmienna 'linia_z_konsoli' typu string na 'liczba' typu int			tab1[i]=liczba;													//do miejsca 'i' tablicy 'tab1' wpisujemy wartosc zmiennej 'liczba'			licz++;		}		System.out.println();		System.out.println("Liczby w odwrotnej kolejnosci: ");		for (int i=0;i<licz;i++){											//dla i<n wykonaj[a po wykonaniu zwieksz 'i' o 1]:			System.out.println(tab1[licz-i-1]);								//wypisujemy tablice od tylu		}	}}

W zadaniu chodzi o to, aby podawać kolejno liczby[typu double]. Linia pusta powinna zakończyć wprowadzanie znaków i program wyświetli liczby w odwrotnej kolejności, niż zostały wprowadzone. Program musi używać konsoli.

 

Problem w tym, że chcę, żeby pusty string kończył pętlę [break] ale wywala błąd, że string jest pusty :P konkretniej to:

Exception in thread "main" java.lang.NumberFormatException: empty String	at sun.misc.FloatingDecimal.readJavaFormatString(Unknown Source)	at java.lang.Double.parseDouble(Unknown Source)	at zad3.main(zad3.java:23)

Jakieś pomysły? Muszę to jutro wysłać :P a nie mam pojęcia jak to zrobić :(

 

P.S. niektóre komentarze są 'głupie' bo kopiowałem to z poprzedniego zadania i jeszcze ich nie przepisywałem poprawnie :P

 

 

EDIT!

 

Aaaa, już chyba wiem gdzie mam błąd! Myślałem że break opuszcza pętlę, przed którą wstawimy daną 'nazwę' czyli u mnie 'wyjdz'. Okazało się, że chyba jednak nie i po prostu gdy nic nie wpisuję, to reszta programu dalej próbuje przekonwertować 'nic' na liczbę zmiennoprzecinkową :P tylko jak opuścić te 2 pętle, gdy spełniony jest dany warunek? Jak zrobić swego rodzaju przeskok?

 

OK już mam :D już działa ^^

 

Sprawa prosta :P przyrównywanie zmiennych tekstowych:

 

String s = "something", t = "maybe something else";

if (s == t) // Legal, but usually WRONG.

if (s.equals(t)) // RIGHT

if (s > t) // ILLEGAL

if (s.compareTo(t) > 0) // CORRECT>

 

jak robiłem tak jak jest w 1 przykładzie, to nie działało ... ale zrobiłem ten z equals i zadziałało :D ładnie break`uje pętlę i wszystko działa :) można zostawić temat dla potomnych lub usunąć :P

Edytowane przez Hawk2

Udostępnij tę odpowiedź


Odnośnik do odpowiedzi
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

Ładowanie


×
×
  • Dodaj nową pozycję...