Back to Top
 
 

Pobieranie danych od użytkownika

Możemy tak sobie pisać metody i wyświetlać ich wyniki, ale to raczej nudne ;). Znacznie ciekawiej byłoby, gdyby komputer „rozmawiał” z nami i reagował w odpowiedni sposób.

 
 

Możemy tak sobie pisać metody i wyświetlać ich wyniki, ale to raczej nudne ;).  Znacznie ciekawiej byłoby, gdyby komputer „rozmawiał” z nami i reagował w odpowiedni sposób.

Następny fragment kodu umożliwi nam odczyt danych, wprowadzonych z klawiatury. Zapytamy użytkownika o imię, po czym przywitamy się z nim.

Wykorzystamy do tego klasę Scanner – jest to standardowa klasa Javy, która posiada dedykowane do tego metody.

Żeby nie zaciemniać schematu działania, nie będziemy teraz dokładnie omawiać, jak to się dzieje. Zobaczmy główną ideę takiej „komunikacji”: 

Zobacz jak działa klasa Scanner:

Co nowego widzisz w kodzie?

  • nie było wcześniej instrukcji importu – dzięki temu będziemy mogli wykorzystać metodę odczytu z klawiatury:
import java.util.Scanner;
  • nowością jest także poniższa instrukcja:
Scanner scan = new Scanner(System.in);

Ogólnie mówiąc, tworzymy tu obiekt klasy Scanner, dzięki niemu wywołamy metodę pobierającą tekst z klawiatury. Możesz zauważyć, że deklarowanie obiektu ma podobieństwa do deklarowania zmiennych. W tym przypadku typ obiektu to Scanner, nazwa obiektu: scan. Pojawia się natomiast słowo kluczowe new, które jest charakterystyczne w konstrukcji tworzącej nowy obiekt.

  • scan.nextLine() - w tym miejscu następuje pobranie tekstu, wpisanego przez użytkownika

Pozostałe części kodu są Ci już znane. Możesz też zajrzeć do poprzednich lekcji, jeśli czegoś nie pamiętasz.

Uwaga: wartość, którą będziemy pobierać, jest typu String - więc jeśli chcesz przypisać do zmiennej wartość pobraną od użytkownika, musi to być zmienna typu String.

Możemy stworzyć coś na kształt dialogu z użytkownikiem - na zmianę pytając go i odczytując jego odpowiedzi.

Zobacz przykład klasy Scanner:

Jeśli chcemy zamiast Stringa uzyskać informację liczbową, aby móc wykonać na niej jakieś działania, to jednym ze sposobów jest zastosowanie konstrukcji scan.nextInt zamiast scan.nextLine().

Jednakże, o ile nextLine przyjmie wszystkie wpisane przez użytkownika wartości, o tyle nextInt przyjmie tylko wartość typu int. W przypadku innego typu program zgłosi błąd.

 

Zadania

 

Zadanie 1

Zapytaj użytkownika, jaka jest aktualnie temperatura na zewnątrz. Następnie wypisz na ekran komunikat ile wynosi aktualna temperatura powietrza. Dodaj do tego komentarz w zależności od tego jaka jest temperatura:

  • temp <= -15 - wypisz “Zostań w domu :)”
  • temp < 0 i temp > -15 - wypisz “Załóż czapkę.”
  • temp >= 0 i temp < 15 - wypisz “Chłodno, ale nie ma tragedii.”
  • temp >= 15 i temp < 25 - wypisz “Całkiem przyjemnie i ciepło.”
  • temp >= 25 - wypisz “Bierz parawan i... plażing!!!

Przejdź do pierwszego zadania:

Zadanie 2

Ponownie zapytaj użytkownika o temperaturę. Spróbujmy przeliczyć teraz temperaturę, którą podał użytkownik – na wartość w Kelwinach. Aby zamienić stopnie Celsjusza na Kelwina, trzeba do podanej przez użytkownika liczby, dodać 273 (jest to wartość zaokrąglona, dokładnie powinno być to 273,15 – jednakże użyjemy tu liczb całkowitych). Wypisz użytkownikowi ile wynosi temperatura w Kelwinach.

Przejdź do drugiego zadania:

Zadanie 3

Trzykrotnie zapytaj użytkownika o liczbę, za każdym razem przypisując odpowiedź do zmiennych: a, b i c. Wybierz największą z podanych liczb i przypisz do zmiennej max. Wypisz komunikat: “Największa spośród podanych liczb to: “ + max".

Przejdź do trzeciego zadania: