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

Wyzwalacz zakonczenia programu nie dziala

Aruba Cloud - Virtual Private Server VPS
0 głosów
110 wizyt
pytanie zadane 17 maja 2020 w Java przez Avalansz Użytkownik (580 p.)

Pisze program obslugujacy wyjatki, polega on na dodawaniu osob do listy. Wszystko dziala oprocz zakonczenia programu. Chce zeby program po zakonczeniu petli za kazdym razem pytal czy chce dalej wprowadzac. Za kazdym razem pyta, lecz gdy wpisze "Nie" to program sie nie konczy


import java.util.ArrayList;
import java.util.Scanner;


public class Osoba {

    String imie;
    String nazwisko;
    static int wiek;
    
    public String getImie() {
        return imie;
    }

    public void setImie(String imie) {
        this.imie = imie;
    }

    public String getNazwisko() {
        return nazwisko;
    }

    public void setNazwisko(String nazwisko) {
        this.nazwisko = nazwisko;
    }

    public int getWiek() {
        return wiek;
    }

    public void setWiek(int wiek) {
        this.wiek = wiek;
    }


    
    
    public static void main(String[] args) {
        
        Osoba osoba = new Osoba();
        osoba.imie = "Stefan";
        osoba.nazwisko = "Kowalski";
        osoba.wiek = 25;
        
        
        
        ArrayList<String> osoby = new ArrayList();
        
        
        //String wiek = String.valueOf(osoba.wiek);
        //String dane = osoba.imie + osoba.nazwisko + wiek;
        Scanner scan = new Scanner(System.in);

        System.out.println("Wprowadź dane osoby");
        
        while(!scan.nextLine().equals("Nie")){  
            
            
            System.out.println("Czy chcesz dalej wprowadzać dane? Tak/Nie");
            scan.nextLine();
            
            
            System.out.println("Wprowadź imię");
            osoba.imie = scan.nextLine();
            System.out.println("Wprowadź nazwisko");
            osoba.nazwisko = scan.nextLine();
            System.out.println("Wprowadź wiek");
            osoba.wiek = scan.nextInt();
            
            String dane = osoba.imie + " " + osoba.nazwisko + " " + osoba.wiek;
            
            osoby.add(dane);

        
        try{
            if(Osoba.wiek < 0 || Osoba.wiek > 110){
                throw new WrongAgeValueException("Niedozwolona wartość wieku " + Osoba.wiek + " dana osoba zostanie usunięta z listy.");
            }
        }
        catch (WrongAgeValueException ex){
            System.out.println(ex.getMessage());
            osoby.remove(dane);
            System.out.println(osoby);
            return;
        } 
       
        
        System.out.println(osoby);
        
        }   

    }
    
}


class WrongAgeValueException extends Exception
{
    public WrongAgeValueException(String string){
        super(string);
    }
}

 

1 odpowiedź

0 głosów
odpowiedź 17 maja 2020 przez sefir Dyskutant (8,560 p.)
Pytaj na końcu while, bo pytasz na początku i ten stan nie jest przekazywany do while.

Podobne pytania

0 głosów
0 odpowiedzi 89 wizyt
pytanie zadane 15 maja 2020 w Java przez Avalansz Użytkownik (580 p.)
+1 głos
1 odpowiedź 492 wizyt
0 głosów
1 odpowiedź 159 wizyt
pytanie zadane 23 listopada 2020 w C i C++ przez Michał Galericz Początkujący (400 p.)

93,329 zapytań

142,323 odpowiedzi

322,400 komentarzy

62,664 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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...