Автор: Ткаченко О.М.
Команда присвоєння, операції. Створення найпростіших програм
Сьогодні ми розглянемо як можна створювати найпростіші програми на мові програмування Java. Для цього спочатку ми розглянемо команду присвоєння, яку ми будемо використовувати при написанні програм.
Команда присвоєння
Присвоєння змінній значення константи, іншої змінної або виразу (змінних і / або констант, розділених знаками операцій), називається операцією присвоювання і позначається знаком "=", наприклад:
х = 3; у = х; Z = X;
У Java допустимо багаторазове використання операції присвоювання в одному виразі, наприклад:
x1 = x2 = x3 = 0;
Ця операція виконується справа наліво, тобто спочатку змінної x3 присвоюється значення 0, потім змінної х2 присвоюється значення змінної x3 (0), і, нарешті, змінної x1 присвоюється значення змінної х2 (0).
Знаки операцій, аргументами яких є числа, поділяються на дві категорії: унарні (унарний) знаки операцій з одним аргументом і бінарні (двійкові) з двома аргументами.
Унарні операції
У Java визначені наступні унарні операції:
· Унарний мінус "-" - змінює знак числа або вирази на протилежний;
· Унарний плюс "+" - не виконує ніяких дій над числом або виразом;
· Побітовое доповнення "~" (тільки для цілих) - інвертує всі біти поля числа (змінює 0 на 1 і 1 на 0);
· Інкремент "++" (тільки для цілих) - збільшує значення змінної на 1;
· Декремент "-" (тільки для цілих) - зменшує значення змінної на 1.
Приклади унарних операцій "+" і "-":
int i = 3, j, k;
j = -i; // J = -3
k = + i; // K = 3
Приклад операції побітового доповнення:
int a = 15;
int b;
b = ~ a; // b= -16
Числа a і b є числами типу int, тобто представляються всередині комп'ютера як двійкові цілі числа зі знаком довжиною 32 біта, тому двійкове подання чисел a і b буде виглядати наступним чином:
a = 00000000 00000000 00000000 00001111
b = 11111111 11111111 11111111 11110000
Як видно з цього подання, всі нульові біти в числі a замінені на одиничні біти в числі b, а одиничні біти в a замінені на нульові біти. Десятковим представленням числа b буде -16.
Знаки операції інкремента і декремента можуть розміщуватися як до, так і після змінної. Ці варіанти називаються відповідно префіксною і постфіксною формою запису цих операції. Знак операції в префіксній формі повертає значення свого операнда після обчислення виразу. При постфіксній формі знак операції спочатку повертає значення свого операнда і тільки після цього обчислює інкремент або декремент, наприклад:
int x = 1, y, z;
y = ++ x;
z = x ++;
Змінній y буде присвоєно значення 2, оскільки спочатку значення x буде збільшено на 1, а потім результат буде присвоєно змінній y. Змінній z буде присвоєно значення 1, оскільки спочатку змінної z буде присвоєно значення, а потім значення x буде збільшено на 1. В обох випадках нове значення змінної x дорівнюватиме 2.
Слід зазначити, що в Java, на відміну від мови C, операції декремента і інкремента можуть застосовуватися і до дійсних змінних (типу float і double).
Бінарні знаки операцій підрозділяються на операції з числовим результатом і операції порівняння, результатом яких є логічне значення.
Арифметичні бінарні операції
У Java визначені наступні арифметичні бінарні операції:
· Додавання "+";
· Віднімання "-";
· Множення "*";
· Ділення "/";
· Обчислення остачі від ділення цілих чисел "%" (повертає остачу від ділення першого числа на друге, причому результат буде мати той же знак, що і ділене), наприклад, результат операції 5% 3 буде дорівнює 2, а результат операції (-7 )% (- 4) буде дорівнює -3. У Java операція може використовуватися і для дійсних змінних (типу float або double).
Приклади бінарних арифметичних операцій:
int x = 7, x1, x2, x3, x4, x5;
x1 = x +10; // X1 = 17
x2 = x - 8; // X2 = -1
x3 = x2 * x; // X3 = -7
x4 = x / 4; // X4 = 1 (при діленні цілих чисел дробова частина відкидається)
x5 = x% 4 // x5 = 3 (остача від ділення // 7 на 4)
Побітові операції
Побітові операції розглядають вихідні числові значення як поля бітів і виконують над ними наступні дії:
· Установка біта в i-ій позиції поля результату в 1, якщо обидва біта в i-их позиціях операндів рівні 1, або в 0 в іншому випадку - побітове І ("&");
· Установка біта в i-ій позиції поля результату в 1, якщо хоча б один біт в i-их позиціях операндів дорівнює 1, або в 0 в іншому випадку - побітове АБО ("|");
· Установка біта в i-ій позиції поля результату в 1, якщо біти в i-их позиціях операндів не рівні один одному, або в 0 в іншому випадку - побітове виключення АБО ("^");
· Зміщення вліво бітів поля першого операнда на кількість бітів, яке визначається другим операндом (біт знака числа при цьому не змінюється) - побітове зміщення вліво з урахуванням знака "<<";
· Зміщення вправо бітів поля першого операнда на кількість бітів, яке визначається другим операндом (біт знака числа при цьому не змінюється) - побітовий зсув вправо з урахуванням знака ">>";
· Зміщення вправо бітів поля першого операнда на кількість бітів, яке визначається другим операндом (біт знака числа при цьому також зсувається) - побітове зміщення вправо без урахування знака ">>>".
Приклади побітових операцій:
1. Побітове І
int x = 112;
// X: 00000000 00000000 00000000 01110000
int y = 94;
// Y: 00000000 00000000 00000000 01011110
int z;
z = x & y;
// Z = 80: 00000000 00000000 00000000 01010000
2. Побітове АБО
int x = 112;
// X: 00000000 00000000 00000000 01110000
int y = 94;
// Y: 00000000 00000000 00000000 01011110
int z;
z = x | y;
// Z = 126: 00000000 00000000 00000000 01111110
3. Побітове виключення АБО
int x = 112;
// X: 00000000 00000000 00000000 01110000
int y = 94;
// Y: 00000000 00000000 00000000 01011110
int z;
z = x ^ y;
// Z = 46: 00000000 00000000 00000000 00101110
4. Зміщення вліво з урахуванням знака
int x = 31, z;
// X: 00000000 00000000 00000000 00011111
z = x << 2;
// Z = 124: 00000000 00000000 00000000 01111100
5. Зміщення вправо з урахуванням знака
int x = -17, z;
// X: 11111111 11111111 11111111 11101111
z = x >> 2;
// Z = -5: 11111111 11111111 11111111 11111011
6. Зміщення вправо без урахування знака
int x = -17, z;
// X: 11111111 11111111 11111111 11101111
z = x >>> 2;
// Z = 1073741819
// Z: 00111111 11111111 11111111 11111011
Комбіновані операції
У Java для бінарних арифметичних операцій можна використовувати комбіновані (складові) знаки операцій:
ідентифікатор операція = вираз
Це еквівалентно наступної операції:
ідентифікатор = ідентифікатор операція вираз
Приклади:
1. Вираз x + = b означає x = x + b.
2. Вираз x - = b означає x = x - b.
3. Вираз x * = b означає x = x * b.
4. Вираз x / = b означає x = x / b.
5. Вираз x% = b означає x = x% b.
6. Вираз x & = b означає x = x & b.
7. Вираз x | = b означає x = x | b.
8. Вираз x ^ = b означає x = x ^ b.
9. Вираз x << = b означає x = x << b.
10. Вираз x >> = b означає x = x >> b.
11. Вираз x >>> = b означає x = x >>> b.
Приклад програми
Ну і нарешті можна написати найпростішу програму для обчислення.
Нехай потрібно знайти периметр прямокутника, якщо відомо довжину а, ширину b прямокутника і ці величини є цілими числами. Периметр прямокутника обчислимо за формулою:
P=2(a+b) при а=8, b=6.
Проект будемо створювати в середовищі Eclipse. Для цього створимо проект з назвою наприклад Pr2.
Тоді створимо клас з назвою Perymetr. Всередені класу напишемо такі рядки програми:
int a,b,P;
a=8;
b=6;
P=2*(a+b);
System.out.println("P="+P);
Якщо змінні а і b взяти дробовими, тоді змінні слід описати типу float. Тоді програма буде виглядати так:
float a,b,P;
a=8.5f;
b=6.2f;
P=2*(a+b);
System.out.println("P="+P);
Після того, як ми написали метод для класу потрібно проекту зберегти та запустити на виконання. У вікні Console з’явиться результат.