елементи рівні -1. Таким чином, всього три одиничних елемента і три елементи зі значенням -1, інші дорівнюють нулю.
Лістинг 3.4. Створення тривимірного масиву
public static void main (String [] args)
// Індексні змінні: int i, j, k;
// Обнулення елементів масиву: for (i = 0; i<3;i++) for(j=0;j<3;j++) for(k=0;k<3;k++) epsilon[i][j][k]=0;
// Поодинокі елементи масиву: epsilon [0] [1] [2] = epsilon [1] [2] [0] = epsilon [2] [0] [1] = 1;
// Елементи зі значенням -1: epsilon [1] [0] [2] = epsilon [0] [2] [1] = epsilon [2] [1] [0] = - 1;
Оголошується тривимірний масив epsilon командою byte [] [] [] epsilon = new byte [3] [3] [3]. Для надійності всіх елементів масиву привласнюються нульові значення, для чого використовується три вкладених інструкції циклу. Далі командою epsilon [0] [1] [2] = epsilon [1] [2] [0] = epsilon [2] [0] [1] = 1 задаються поодинокі значення для трьох елементів масиву і ще для трьох елементів значення - 1 (командою epsilon [1] [0] [2] = epsilon [0] [2] [1] = epsilon [2] [1] [0] = - 1).
- Чи не бачите? Стріляю!
- Дивний спосіб прикрашати будинок монограмою королеви.
З к / ф «Пригоди Шерлока Холмса і доктора Ватсона»
У мові програмування С ++ символьні масиви мають особливий ареол, оскільки там символьні масиви - один із засобів реалізації текстових рядків. В Java щодо символьних масивів все йде набагато простіше - це звичайний, з точки зору створення та застосування, масив, елементами якого є символи. Правда, і в Java в використанні символьних масивів є деякі особливості. Однак ці особливості скоріше пов'язані
зі специфікою типу char. ніж зі структурою або властивостями безпосередньо масиву. У лістингу 3.5 приведений простий приклад.
Лістинг 3.5. символьний масив
public static void main (String [] args) Лістинг 3.6. кодування слова public static void main (String [] args) for (int i = 0; i У програмі виконується досить просте кодування слова, записаного по буквах в масив words. Цей масив оголошується і инициализируется значеннями елементів, відповідними слову Слово. Далі оголошується ще один символьний масив code. Його розмір дорівнює розміру масиву words. Заповнення елементів масиву code виконується в рамках інструкції циклу. Для цього в тілі циклу використана команда code [i] = (char) (words [i] + i + 1). В даному випадку при обчисленні виразу words [i] + i + 1 символ words [i] перетвориться в числовий формат (код символу) і до нього додається значення i + 1. Отримане число завдяки інструкції явного приведення типу перетвориться в символ. Цей символ записується в масив code. Далі обидва масиви виводяться на екран. В результаті виконання програми отримуємо наступне: Для «розшифровки» отриманого «слова» можна застосувати зворотну процедуру. Пропонуємо читачеві зробити це самостійно. Присвоєння і порівняння масивів Прості речі розучилися робити! З к / ф «Пригоди Шерлока Холмса і доктора Ватсона» В принципі, один масив може бути привласнений як значення іншому масиву, якщо їх типи збігаються. Масиви також можна порівнювати. Правда, все зазначені операції виконуються досить специфічно і в деякій мірі можуть здивувати. Щоб звести таке здивування до мінімуму, має сенс ще раз зупинитися на тому, що ж таке масив і як його технічна реалізація пов'язана синтаксичними конструкціями мови Java. Змінна, що позначає масив (змінна масиву), оголошується незалежно від фактичного виділення пам'яті під масив. Іншими словами, безпосередньо масив і змінна масиву - це далеко не одне і те ж. У цьому сенсі показовим є двоетапний (двома командами) процес з- будівлі масиву. наприклад: Глава 3. Масиви тимчасової nums. Тепер нескладно здогадатися, яким буде результат виконання наступних команд: int [] nums, data; nums = new int []; data = nums; При порівнянні масивів за допомогою операторів одно == і не дорівнює! = (Наприклад, nums == data або nums! = Data) порівнюються значення змінних масиву, а не елементи в цих масивах. Тому результатом вираження nums == data є true. якщо обидві змінні масиву nums і data посилаються на один і той же масив. Приклад програми, в якій має місце присвоювання масиву, приведений в лістингу 3.7. Лістинг 3.7. Присвоєння масиву public static void main (String [] args) У програмі оголошуються два цілочисельних масиву: масив nums з 10 елементів і масив data з 20 елементів. За допомогою інструкції циклу ці масиви заповнюються: масив nums заповнюється непарними числами, масив data - парними. Після цього командою data = nums масиву data в якості значення присвоюється масив nums. Звертаємо увагу, що хоча ці масиви мають Присвоєння і порівняння масивів однаковий тип, у них різні розміри. Далі за допомогою ще однієї інструкції циклу елементи масиву data виводяться з інтервалом в один рядок (для виведення значень без переходу до нового рядка використовуємо метод print ()). В результаті ми отримуємо числовий ряд: 1 3 5 7 9 11 13 15 17 19 Це ті значення, якими ініціалізувати масив nums. Інтерес в даному випадку представляє ту обставину, що в інструкції циклу, що забезпечує висновок значень масиву data. верхня межа для індексів елементів масиву визначається через властивість length масиву data. Масив ініціалізувати за розміром 20, а в кінцевому підсумку його розмір дорівнював 10! Причина очевидна. Після виконання команди data = nums змінна масиву data починає посилатися на той же масив, що і змінна масиву nums. Особливості порівняння масивів на предмет рівності (нерівності) ілюструються програмним кодом лістингу 3.8. Лістинг 3.8. порівняння масивів public static void main (String [] args)
// Перевірка збігу посилань: System.out.println ( "Співпадаючі масиви!"); return;> // Поелементна перевірка масивів: for (int i = 0; i Програма призначена для порівняння двох цілочисельних масивів. У програмі оголошуються два цілочисельних масиву nums і data і не започатковано однаковими наборами значень. Далі безпосередньо виконується перевірка. Складається вона з трьох етапів. Спочатку виконується перевірка рівності змінних масивів nums і data. Якщо посилання рівні, то, очевидно, масиви однакові (збігаються). Перевірка рівності посилань на масиви виконуєтьсяПрисвоєння і порівняння масивів
Схожі статті