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

Zamykanie BufferedReader - Java

Object Storage Arubacloud
0 głosów
396 wizyt
pytanie zadane 14 marca 2016 w Java przez anhydryt Początkujący (290 p.)

Cześć wszystkim :)

Na początku przepraszam, za styl w jakim jest to napisane, ale cały czas się uczę (uwagi, zrypki bardzo proszę!). W poniższym kodzie, nie wiem jak zamknąć BufferedReader. Pętla IF nie działa. Próbowałem zrobić też w while( i != -1), ale to także nie działa.

Dziekuje za zaangażowanie i pomoc.

Pozdrawiam

 

package Zadania;
import java.io.*;
public class sredniaArytmetyczna {

    public static void main(String[] args) {
    
    double wynik = 0;    
    double srednia = 0;
    double n = 1;
    double i = 0;    
    
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        
        try {
            
            while (true) {
                System.out.println("Podaj liczbę:");
                i = Double.parseDouble(reader.readLine());
                
                System.out.println("Podana liczba: " + i);
                
                wynik += i++;                
                System.out.println("Suma: " + wynik);
                
                srednia = (wynik/n);
                System.out.println("Średnia arytmetyczna: " + srednia);
                
                if(i == -1) {
                    reader.close();
                    System.out.println("Koniec"); break;
                }
                n++;
            }
            System.out.println(wynik);
            
            
        } catch (IOException e) {
            System.out.println("Błąd: " + e);
        } catch (NumberFormatException e) {
            System.out.println("Błąd formatu " + e);
        }
    }
}

 

3 odpowiedzi

+1 głos
odpowiedź 14 marca 2016 przez iwan9449 Pasjonat (20,810 p.)
Nie rozumiem czemu nie użyjesz po prostu klasy Scanner?

Ps: IF nie jest pętlą.

Pozdrawiam!
komentarz 15 marca 2016 przez anhydryt Początkujący (290 p.)
Fakt, moja pomyłka.

Chciałem skorzystać z tej klasy, bo słyszałem że często jest wykorzystywana.
komentarz 16 marca 2016 przez efiku Szeryf (75,160 p.)
Jeżeli chce czytać z pliku linia po linii to BufferedReader jest okej ale właśnie tu Scanner będzie lepszy :)!

http://docs.oracle.com/javase/6/docs/api/java/io/BufferedReader.html
+1 głos
odpowiedź 15 marca 2016 przez Porcupine Nałogowiec (31,560 p.)

W linii 22. robisz: wynik += i++; co zwiększa wartość zmiennej: i z minus jeden na zero. 
Musisz zmienić warunek w if'ie na i == 0 :) 

Pozdrawiam,

komentarz 15 marca 2016 przez anhydryt Początkujący (290 p.)
Dzięki :)

A mam pytanie, czy da się jakoś wprowadzić by przy łańcuchu np. ''quit'' kończył program? Próbowałem, ale wyskakuje błąd NumberFormatException.

Pozdrawiam :)
komentarz 15 marca 2016 przez Porcupine Nałogowiec (31,560 p.)
Hmmm... Mógłbyś na przykład tego: reader.readLine() nie rzutować od razu na double'a, tylko na początek przypisać do Stringa i robić coś w stylu: if ( twojString.equals("quit") ) { break; }

A dopiero później, jeśli powyższy warunek nie zajdzie, zamieniałbyś tego Stringa na double :)

Pozdrawiam,
0 głosów
odpowiedź 15 marca 2016 przez Mar Cin Dyskutant (8,900 p.)

System.out.println("Podaj liczbę:");
                i = Double.parseDouble(reader.readLine());
               
               if(i==-1){

              System.exit(0);//zrobiłbym to tak w sytuacji gdzy chodzi Ci o
                                        //zakonczenie dzialania programu
           }

wynik += i++;
wynika+=i;  //bez postinkrementacji i

 

Podobne pytania

0 głosów
1 odpowiedź 1,031 wizyt
pytanie zadane 7 sierpnia 2018 w SPOJ przez Piotr Błaszczak Bywalec (2,890 p.)
+1 głos
1 odpowiedź 497 wizyt
pytanie zadane 29 czerwca 2018 w C i C++ przez ernest52 Początkujący (450 p.)
0 głosów
1 odpowiedź 358 wizyt
pytanie zadane 9 marca 2017 w SPOJ przez chucksqll Stary wyjadacz (12,930 p.)

92,579 zapytań

141,432 odpowiedzi

319,663 komentarzy

61,964 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

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

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!

...