Skocz do zawartości
  • Przeglądający   0 użytkowników

    Brak zarejestrowanych użytkowników, przeglądających tę stronę.

Arixon

Powrót do danej linijki Scanner write - Java

Promowane odpowiedzi

Troszkę źle to może w temacie napisałem.

 

Aczkolwiek, chodzi mi o to: 

 

Poniżej napisałem programik, dodawanie. Zrobiłem sobie, że gdy ktoś poda literkę to wyskoczy błąd 'To nie liczba'. Po tym jak wyskakuje błąd chciałbym aby ałtomatycznie pojawiło się to od nowa czyli znów wyskoczyło podaj liczbę, jak to zrobić?

 

    Scanner write = new Scanner(System.in);
        int iloscLiczb;
         System.out.println("...::: ZNAJDUJESZ SIĘ W   ::1.DODAWANIE::  :::...\n");
        try {
            //Scanner w = new Scanner(System.in);
            //System.out.println("zz");
            //int value = w.nextInt();
            System.out.println("Podaj ile liczb wprowadzisz: \n");              
            iloscLiczb = write.nextInt();
             double[] podaj = new double[iloscLiczb];// deklaracja i tworzenie tablicy o długości podanej przez użytkownika
               // wprowadzanie danych
            for (int i = 0; i < podaj.length; i++) {
                    System.out.print(" Podaj " + i + " liczbę: " );
                    podaj[i] = write.nextDouble();
            }
            double suma = 0;
             for(double pomiar : podaj) {
                        suma += pomiar;
             }
               System.out.println("\n\nWynik: " + suma);
        } catch (Exception ex) {
            // Display exception.
            System.out.println("To nie jest liczba !");
        }

 

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

@Salva właśnie o tym czytam, lecz nie wiem gdzie to dokładnie wstawić. Bo chodzi mi o to, że mam:

 

Podaj ile liczb wprowadzisz: np.3;

Podaj 0 liczbe: 1

Podaj 1 liczbe: i tutaj jak wpisze przykładowo a, to wyskoczy mi, że to nie jest liczba i chciałbym aby znowu poprosiło o podanie liczby tylko tego pola.

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Przy użyciu try-catch musiałbyś sprawdzanie przerzucić do osobnej metody. Z Javy jestem noga, no ale ogólny zakres programu byłby taki:

// wprowadzanie danych
int i = 0, x;
do {
  x = 0;
  System.out.print(" Podaj " + (i+1) + " liczbę: " );
  podaj[i] = write.nextDouble();
  if(!checkVariable(podaj[i])) { // jeżeli nie double, to...
    System.out.print("To nie liczba!"); // wyswietl info
    x++; // i zwiększ zwienną
  }
  if(!x) i++; // x > 0, to x = TRUE; jeżeli x = 0, to x = FALSE - stąd ta negacja
}
while(i < podaj.length);

No teraz metoda checkVariable() powinna zwracać TRUE, kiedy podana liczba jest poprawna lub FALSE, kiedy nie jest.

W sumie na pętli for() też by to szło zrobić.

  • Lubię to! 2

Udostępnij tego posta


Odnośnik do posta
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Utwórz konto

Utwórz konto. To darmowe i bardzo proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz już konto? Zaloguj się tutaj.

Zaloguj się teraz


×