Wejście i wyjście w Javie: Scanner, println i printf
Zaktualizowano 22 października 2026
Wejście i wyjście w Javie to pierwsza rzecz, której potrzebujesz: prosty program coś wczytuje, liczy coś na tej podstawie i wypisuje wynik. Na pierwsze zadania nic więcej nie trzeba.
Ramka jest zawsze taka sama. Twój kod stoi między nawiasami klamrowymi metody main, a Java wykonuje go linijka po linijce, od góry do dołu. Co dokładnie znaczą public class i static, wyjaśnia artykuł o klasach i obiektach w Javie. Do tego czasu po prostu zostaw ramkę bez zmian.
Wypisywanie i zmienne
System.out.println(...) wypisuje jedną linię. Zmienna to nazwane miejsce w pamięci na jakąś wartość. Tworząc ją, piszesz przed nią typ:
intdla liczb całkowitych, np.int age = 19;doubledla liczb zmiennoprzecinkowych, np.double price = 4.99;(z kropką, nie z przecinkiem)Stringdla tekstu w cudzysłowie, np.String name = "Ada";(więcej w artykule o Stringach w Javie)
Operatorem + łączysz teksty i wartości. Każda instrukcja kończy się średnikiem.
public class Main { public static void main(String[] args) { String name = "Ada"; int age = 19; System.out.println("Hello, " + name + "!"); System.out.println(name + " is " + age + " years old."); System.out.println("Next year: " + (age + 1)); }}Wczytywanie danych i obliczenia
Scanner czyta to, co ktoś wpisze w konsoli. nextInt() pobiera następną liczbę całkowitą, nextDouble() następną liczbę zmiennoprzecinkową, a nextLine() całą linię tekstu. Spacje i znaki nowej linii między liczbami nie mają znaczenia.
Java liczy za pomocą +, -, *, / i %. Dwie rzeczy często zaskakują:
- Gdy dzielisz dwie wartości
int, część ułamkowa przepada:17 / 5daje3. %(modulo) zwraca resztę z dzielenia:17 % 5daje2.
Gdy tylko w działaniu bierze udział liczba zmiennoprzecinkowa, Java zachowuje część ułamkową, na przykład / 2.0 zamiast / 2.
import java.util.Scanner;
public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int a = scanner.nextInt(); int b = scanner.nextInt(); System.out.println(a + " / " + b + " = " + a / b); System.out.println(a + " % " + b + " = " + a % b); System.out.println("Average: " + (a + b) / 2.0); }}
Wejście17 5
W polu „Wejście” widzisz, co program wczytuje.
Ładne formatowanie z printf
Liczby zmiennoprzecinkowe często mają wiele miejsc po przecinku. System.out.printf pozwala ustalić, jak wartość ma wyglądać. W tekście są symbole zastępcze, które po kolei zastępowane są wartościami podanymi dalej:
%.2f: liczba zmiennoprzecinkowa z dokładnie dwoma miejscami po przecinku (zaokrąglona)%d: liczba całkowita%s: tekst%n: nowa linia (printfsam jej nie dodaje)
import java.util.Scanner;
public class Main { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); double price = scanner.nextDouble(); double withTax = price * 1.19; System.out.println("Without printf: " + withTax); System.out.printf("With printf: %.2f €%n", withTax); }}
Wejście12.5
Typowe błędy
Dzielenie całkowite
double average = (2 + 3) / 2;daje2.0, a nie2.5. Dzielenie odbywa się na dwóch wartościachint, a dopiero potem wynik trafia do zmiennejdouble. Rozwiązanie: dziel przez2.0.Plus łączy tekst
Gdy po lewej stronie stoi tekst,
+już tylko dokleja kolejne elementy:System.out.println("Sum: " + 2 + 3); // Sum: 23System.out.println("Sum: " + (2 + 3)); // Sum: 5Dlatego obliczenia w wypisywanym tekście bierz w nawiasy.
Literówki zgłaszane przez kompilator
Java rozróżnia wielkość liter: nie zna
system.out.printlnanistring. Gdy brakuje średnika, kompilator zgłasza';' expected. Numer linii w komunikacie zwykle wskazuje to miejsce albo linię przed nim.Wynik musi się zgadzać co do znaku
Testy porównują twoje wyjście znak po znaku. Brakująca spacja, jeden przecinek za dużo albo
printzamiastprintlnwystarczą, żeby test nie przeszedł. Porównaj dokładnie swoje wyjście z przykładem z zadania. Gdy program ma wypisywać coś innego w zależności od danych, potrzebujesz instrukcji warunkowych w Javie.
Zadania z tego tematu
Przećwicz to, czego się nauczyłeś, od razu w przeglądarce. Testy natychmiast sprawdzają twoje rozwiązanie.
Powiązane artykuły
- Instrukcje warunkoweInstrukcje warunkowe w Javie: if, else if, switch oraz && i || prosto wyjaśnione. Z przykładami i typowymi błędami, które kosztują punkty na kolokwium.Czytaj artykuł
- StringiStringi w Javie w prosty sposób: substring, charAt, split, equals i StringBuilder z przykładami. Do tego typowe błędy, np. porównywanie przez ==.Czytaj artykuł
- PętlePętle w Javie w prosty sposób: for, while, do-while, break i continue z przykładami. Do tego typowe błędy, które kosztują punkty na kolokwium.Czytaj artykuł