Автор: Ткаченко О.М.
1. Консольне виведення даних
З огляду на домінування віконного типу інтерфейсу, консольне введення і виведення використовується переважно для відлагодження програми, при веденні лог-файлів та коли передбачається використання режиму командного рядка. Для простого виведення на екран у консольному режимі використовуються команди System.out.print або System.out.println.
У дужках вказується константа, змінна чи їх поєднання.
Приклади:
System.out.print("Hello!");
System.out.print(3.56);
System.out.print(x);
Якщо виводиться кілька значень різних типів, необхідно забезпечити автоматичне перетворення виразу в рядок:
System.out.print("Значення змінної Х дорівнює " + х);
Якщо змінна Х у цей момент мала значення, наприклад, 2.8,то на екрані буде виведено:
Значення змінної Х дорівнює 2.8
Тут відбулося автоматичне перетворення числової змінної Х у рядковий тип, далі – склеювання рядків (операція "+" для рядків) "Значення змінної Х дорівнює" та "2.8", а результат (склеєний рядок) – виведено на екран.
Використання println після виведення переводить курсор на новий рядок екрану консолі, print – залишає в тому ж рядку. При виведенні рядків у консоль можуть бути використані спеціальні символи управління виведенням:
\n новий рядок
\t зміщення табуляції
\r переміщення курсору на початок рядка
\\ виведення символу "\"
\" виведення подвійних лапок "
\' виведення одинарних лапок '.
46
Приклад:
В результаті виконання команди
System.out.println("12\n34\t56\\78\"90\' ");
на екрані консолі буде виведено:
12
34 56\78"90'
Наступний приклад демонструє можливості форматованого виведення числових значень. Перші два рядки вказують на використання бібліотек, пов'язаних з форматом дати і локалізованим представленням величин (дата, відділення дробової частини тощо). У коментарях справа__ – те, що буде на екрані при виведенні (тут: ˽ - пробіл).
import java.util.Locale;
import java.util.Calendar;
public class vuvid_yes {
public static void main(String[] args) {
long n = 461012;
System.out.format("%d%n", n); // 461012
System.out.format("%08d%n", n); // 00461012
System.out.format("%+8d%n", n); // ˽ +461012
System.out.format("%,8d%n", n); // ˽ 461˽ 012
System.out.format("%+,8d%n%n", n); // +461˽ 012
double pi = Math.PI;
System.out.format("%f%n", pi); // 3.141593
System.out.format("%.3f%n", pi); // 3.142
System.out.format("%10.3f%n", pi); // ˽ ˽ ˽ ˽ ˽ 3.142
System.out.format(Locale.FRANCE,"%-10.4f%n%n", pi); // 3,1416
System.out.println("2015");
Calendar c = Calendar.getInstance();
System.out.format("%tB %te, %tY%n", c, c, c); липня 10, 2015
System.out.format("%tl:%tM %tp%n", c, c, c); 2:44 pm
System.out.format("%tD%n", c); 07/10/15
}
}
Загалом існують додаткові засоби форматованого виведення величин у консоль. Даний матеріал передбачає ґрунтовні знання об'єктно-орієнтованого програмування на Java та бібліотек управління потоками введення і виведення.
2. Консольне введення даних
Консольне введення у нашому випадку – це введення даних з клавіатури. Для організації такого процесу використовують об'єкти спеціалізованого типу Scanner, що потребує використання бібліотеки java.util.* (перший рядок лістингу).
import java.util.*;
public class Vvid {
public static void main(String[] args) {
// TODO Auto-generated method stub
// оголошення і створення об'єкту для сканування клавіатури
Scanner scan = new Scanner(System.in);
int n;
System.out.println("Введіть ціле число: ");
n = scan.nextInt();
System.out.println("Число "+2*n+" у 2 рази більше вашого.");
double x;
System.out.println("Введіть дробове число: ");
x = scan.nextDouble();
System.out.println("Число "+x/3+" у 3 менше вашого.");
String s;
System.out.println("Введіть ваше ім'я: ");
s = scan.next();
System.out.println("Дуже приємно, "+s);
}
}
В результаті виконання програми на екрані консолі буде:
Введіть ціле число:
5
Число 10 у 2 рази більше вашого.
Введіть дробове число:
3,75
Число 1.25 у 3 менше вашого.
Введіть ваше ім'я:
Іван
Дуже приємно, Іван
Завдання для практичної роботи.
Обчислити значення виразу: z=(2x-3y)/(x+y). Значення змінних x та y ввести з клавіатури.
Для тих, в кого щось не виходить код програми має бути такий:
import java.util.*;
public class vuraz {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scan = new Scanner(System.in);
double x,y,z;
System.out.println("Введіть x: ");
x = scan.nextDouble();
System.out.println("Введіть y: ");
y = scan.nextDouble();
z=(2*x-3*y)/(x+y);
System.out.println("z="+z);
System.out.format("%.3f%n", z);
}
}
Діалог при запуску програми:
Введіть x:
2
Введіть y:
1
z=0.3333333333333333
0,333
3. Обмін змінних значеннями
Обміняти змінні х та у значеннями, відобразити результати.
Розв’язання.
Скористаємося класичним способом, використавши третю (допоміжну) змінну того ж типу, що і вхідні змінні, назвемо її z. Опишемо послідовність виконання команд так, як показано на рисунку нижче. Для визначеності на початку ініціалізуємо змінні х та у значеннями 2 і 5 відповідно.
Схема обміну значеннями між х та у подано нижче в таблиці .
Таблиця. Схема обміну значеннями двох змінних
Нижче показано реалізацію цього способу обміну змінних значеннями.
public class obmin {
public static void main(String[] args) {
// TODO Auto-generated method stub
int x, y, z;
// початкова ініціалізація
x=2; y=5;
System.out.println("Початкові значення: x="+x+", y="+y);
// обмін значеннями
z=x; x=y; y=z;
System.out.println("Після обміну значеннями: x="+x+", y="+y);
}
}
В результаті на екрані буде відображено:
Початкові значення: x=2, y=5
Після обміну значеннями: x=5, y=2
Зауваження.
1. Даний спосіб обміну змінних значеннями працює для всіх простих типів, у т.ч. для числових, а також символьного і логічного типу. Для числових існує також спосіб обміну значеннями без використання третьої змінної. Спробуйте розв’язати задачу без використання змінної z.
2. На відміну від математичного запису, у програмуванні важливою є послідовність виконання команд. Так, якщо, наприклад, поміняти місцями команди 3 і 4 або 4 і 5 в таблиці, то одне із вхідних значень буде втрачено.
На сьогодні все. Наступного разу ми перейдемо до вивчення класів. Тому залишайтесь з нами. Вас надалі чекають цікаві і потрібні теми, а саме вивчення ООП.