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: