Jump to content
Sign in to follow this  
Arixon

Powrót do danej linijki Scanner write - Java

Recommended Posts

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 !");
        }

 

Share this post


Link to post

Pętlą do-while.

  • Like 1

Share this post


Link to post

@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.

Share this post


Link to post

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ć.

  • Like 2

Share this post


Link to post

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Create a New Account. It’s free and easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  
×
×
  • Create New...