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

Wyzwalacz zakonczenia programu nie dziala

Object Storage Arubacloud
0 głosów
91 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 78 wizyt
pytanie zadane 15 maja 2020 w Java przez Avalansz Użytkownik (580 p.)
+1 głos
1 odpowiedź 368 wizyt
0 głosów
1 odpowiedź 130 wizyt
pytanie zadane 23 listopada 2020 w C i C++ przez Michał Galericz Początkujący (400 p.)

92,693 zapytań

141,606 odpowiedzi

320,105 komentarzy

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

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!

...