Вступ до шаблонів на Java

У статті Шаблони на Java, перш ніж вивчити будь-яку мову програмування на Java і зануритися вглиб сучасних концепцій, дуже важливо і головне, щоб зрозуміти роботу циклів. Хоча є 3 типи петель, які є для циклу "while" та "do-while". Кожен цикл використовується відповідно до конкретної ситуації програми, оскільки вони трохи відрізняються один від одного. Для використання різних циклів потрібна певна логіка програмування, і для цього програмістам надається практика моделей, оскільки вона передбачає використання логічної та міркувальної сили. Це може бути друк геометричних фігур (наприклад, трикутника, квадрата тощо), піраміди, коробок у різних візерунках зірок, цифр, стилів символів на екрані консолі. Формат або базовий синтаксис циклів можуть відрізнятися від однієї мови програмування до іншої, але загальна логіка друку цих шаблонів залишається тією ж.

Приклад шаблонів на Java

Давайте розберемося, як малювати візерунки на Java через деякі приклади

Приклад1: Друк напівпіраміди за допомогою чисел.

Код:

public class Pyramid
(
public static void main(String() args)
(
int i, j;
​//outermost loop to represent the number of rows which is 5 in this case for(i= 1; i<= 5; i++)
(
​//innermost loop is to print the numbers in the specific rows for (j=1; j<=i; j++)
(
System.out.print(j +" " );
)
System.out.println();
)
)
)

Вихід:

У наведеному вище прикладі для друку візерунка потрібно лише 2 основні петлі, перша для циклу - кількість рядків. У нашому випадку ми визначили рядки, тобто 5, інакше ми також можемо взяти дані від користувача та зберегти їх у змінній. Внутрішня петля полягає у друкуванні чисел у певному рядку. Після завершення 1 рядка або кінця циклу 'j' рядок змінюється за допомогою println ().

Приклад2: Друк стрілки чисел.

Код:

public class NumberTriangle
(
public static void main(String() args)
(
int i, j;
int rows =7;
​//outermost loop to represent the number of rows which is 7 in this case
//for the upper half of arrow
for (i=1; i<= rows; i++)
(
​//innermost loop is to print the numbers in the specific rows
//for the upper half of arrow
for (j=1; j<=i; j++)
(
System.out.print(j + " ");
)
System.out.println();
)
​//outermost loop to represent the number of rows which is 6 in this case
//for the lower half of arrow
for (i=rows-1; i>=1; i--)
(
​//innermost loop is to print the numbers in the specific rows
//for the lower half of arrow
for (j=1; j<=i; j++)
(
System.out.print(j + " ");
)
System.out.println();
)
)
)

Вихід:

У наведеному вище прикладі нам потрібно розділити стрілку на дві половини і використовувати 2 петлі для кожної половини. У першій половині кількість рядків буде початковим значенням, встановленим для рядків, тоді як для нижньої половини кількість рядків на 1 менше, ніж початкове значення. Внутрішні петлі для обох половин використовуються для перегляду кожного ряду відповідно до зовнішньої петлі.

Приклад 3: Друк повної піраміди за допомогою зірок (*).

Код:

public class FullPyramid
(
public static void main(String() args)
(
int i, j, k;
int rows = 5;
//outermost loop to represent the number of rows which is 5 in this case for(i= 1; i<= rows; i++)
(
//innermost loop to represent the spaces in pyramid for (j= 1; j<= rows-i; j++)
(
System.out.print(" ");
)
​//innermost loop to represent the stars (*) in pyramid for (k= 1; k<= 2*i-1; k++)
(
System.out.print("* ");
)
System.out.println();
)
)
)

Вихід:

У наведеному вище прикладі нам потрібно зробити 3 речі, тобто маючи на увазі загальну кількість рядків для друку піраміди, для якої перший для циклу працює від змінної від 1 до рядків. По-друге, спочатку нам потрібно роздрукувати пробіли в піраміді, а потім візерунок (*) після пробілів. Для цього використовуються друга і третя для петель, які знаходяться всередині зовнішньої петлі 'i'.

Приклад 4: Друк половини зворотної піраміди за допомогою чисел.

Код:

public class ReversePyramid
(
public static void main(String() args)
(
int i, j, k;
int rows = 5;
​//outermost loop to represent the number of rows which is 5 in this case for(i= 1; i<= rows; i++)
(
//innermost loop to represent the spaces
for (j= 1; j<= rows-1; j++)
(
System.out.print(" ");
)
​//innermost loop to represent the stars (*) in pyramid for (k= 1; k<= i; k++)
(
System.out.print("* ");
)
System.out.println();
)
)
)

Вихід:

Проста напівпіраміда проста, оскільки нам потрібно обробляти цифри, * або символи, які ми друкуємо, але для зворотної піраміди нам потрібно спочатку надрукувати пробіли, а після цього візерунок, який у нашому випадку є (*). Таким чином, 3 для петель використовуються аналогічно тим, що й у випадку з повною пірамідою.

Приклад 5: Друк напівпіраміди за допомогою алфавітів.

Код:

public class AlphabetPyramid
(
public static void main(String() args)
(
int i, j;
​//outermost loop to represent the number of rows which is 5 in this case for(i= 1; i<= 5; i++)
(
int ch = 65;
​//innermost loop to represent the alphabets in a pyramid in particular row for (j= 1; j<= i; j++)
(
System.out.print((char)(ch + i - 1) + " ");
)
System.out.println();
)
)
)

Вихід:

Піраміда друкується з тією ж логікою, що і у наведеному вище прикладі, використовуючи 2 для циклів, один для кількості рядків та інші для друку символів у певному рядку. Але головне, що слід зауважити, - це обробка персонажними даними. 'A' має числове значення 65 на Java, тому вся математична логіка виконується за допомогою числового значення алфавіту, і врешті-решт воно друкується у форматі символів.

Приклад 6: Шаблон друку алфавітів.

Код:

public class AlphabetPattern
(
public static void main(String() args)
(
int i, j;
//outermost loop to represent the number of rows which is 5 in this case for(i= 1; i<= 5; i++)
(
int ch = 65;
​//innermost loop to represent the alphabets for (j= 1; j<= i; j++)
(
System.out.print((char)(ch - 1 + j) + " ");
)
System.out.println();
)
)
)

Вихід:

Основний шаблон, який слід розглядати зі значенням символів, і 2 для циклів у наведеному вище прикладі аналогічний прикладу 5, лише різницею є проста логіка, що використовується для друку потрібного шаблону.

Приклад 7: Друк квадрата за допомогою зірок (*).

Код:

public class SquarePattern
(
public static void main(String() args)
(
int i, j;
​//outermost loop to represent the number of rows which is 5 in this case for(i= 1; i<= 5; i++)
(
int ch = 65;
//innermost loop to represent the stars (*) for (j= 1; j<= 5; j++)
(
System.out.print(" * " + " ");
)
System.out.println();
)
)
)

Вихід:

Для друку квадрата нам потрібна довжина і ширина, тобто обидві сторони квадрата повинні бути однаковими, що в нашому випадку дорівнює 5. Отже, перший для циклу використовується для довжини або кількості рядків у квадраті, а внутрішній для циклу використовується для ширини квадрата, тобто 5 зірок в одному ряду.

Приклад 8: Друк прямокутника за допомогою зірок (*).

Код:

public class RectanglePattern
(
public static void main(String() args)
(
int i, j;
​//outermost loop to represent the number of rows which is 5 in this case for(i= 1; i<= 5; i++)
(
int ch = 65;
​//innermost loop to represent columns the stars (*) for (j= 1; j<= 9; j++)
(
System.out.print(" * " + " " );
)
System.out.println();
)
)
)

Вихід:

Основна логіка друку прямокутника (*) така ж, як друк квадратів, різниця між різною довжиною та шириною прямокутника. Тут цикл 'i' призначений для довжини прямокутника, а внутрішня петля 'j' - для ширини петлі. У нашій програмі це приймається як постійне значення, ми також можемо запитати користувача та зберігати їх в окремих змінних.

Приклад 9: Друк алмазу за допомогою зірок.

Друк алмазу на Java - дуже простий процес. Він передбачає друк 2 пірамід, 1 у напрямку вгору та інший у перевернутому напрямку. Тому в основному нам потрібно використовувати петлі так само, як і кодування для друку двох окремих пірамід.

Код:

public class Diamond
(
public static void main(String() args)
(
int i, j, k;
int rows = 5;
​//outermost loop to represent the number of rows which is 5 in this case.
// Creating upper pyramid
for(i= 1; i<= rows; i++)
(
//innermost loop to represent the spaces in upper pyramid for (j= 1; j<= rows-i; j++)
(
System.out.print(" ");
)
​//innermost loop to represent the stars (*) in upper pyramid for (k= 1; k<= 2*i-1; k++)
(
System.out.print("* ");
)
System.out.println();
)
​//outermost loop for the rows in the inverted pyramid for (i = rows-1; i>0; i--)
(
​//innermost loop for the space present in the inverted pyramid for (j=1; j<= rows - i; j++)
(
System.out.print(" ");
)
​//innermost loop inside the outer loop to print the ( * ) pattern in inverted pyramid for (k = 1; k<= 2*i-1; k++)
(
System.out.print("* ");
)
System.out.println();
)
)
)

У наведеному вище прикладі застосовується майже однакова логіка для створення обох пірамід, одна у напрямку вгору, а інша у перевернутому напрямку. Найперше для циклу - це кількість рядків або рядків у малюнку, а ще дві для циклів - для пробілів та зірки (*).

Вихід:

Приклад 10: Друк двійкових чисел у сходовому форматі.

Код:

public class BinaryStair
(
public static void main(String() args)
(
int i, j;
//outer loop for the total rows which is 5 in this case for (i = 1; i <= 5; i++)
(
​//inner loop for the pattern of 0 and 1 in each row for (j = 1; j<= i ; j++)
(
if (j % 2 ==0)
(
System.out.print(0);
)
else
(
System.out.print(1);
)
)
System.out.println();
)
)
)

Вихід:

У наведеному вище прикладі для друку двійкового візерунку зовнішня для циклу 'i' використовується для загальної кількості рядків, а внутрішня для циклу 'j' використовується для повторення зовнішньої петлі 'i', оскільки для для 1-го ряду нам потрібно 1 значення, для 2-го ряду нам потрібно 2 значення тощо. Якщо і інше оператори використовуються для друку альтернативного значення 0 і 1. Припустимо, вперше i = 1, j = 1 і 1% 2! = 0, тоді 1 надрукується 1, і виконання переміститься з внутрішня петля.

Приклад 11: Програма для друку повторюваного алфавіту.

Код:

public class AlphabetReverseOrder
(
public static void main(String() args)
(
int i, j, k;
//outer loop for the total rows which is 5 in this case for (i = 0 ; i<=5; i++)
(
int ch= 65;
//inner loop for the pattern of alphabets in till 'i' loop for (j = 0; j <=i ; j++)
(
System.out.print((char) (ch+j) + " ");
)
//inner loop for the pattern of alphabets in reverse order from 'i' loop for (k= i-1; k >=0; k--)
(
System.out.print((char) (ch+k) + " ");
)
System.out.println();
)
)
)

Вихід:

У наведеному вище прикладі, якщо ми спостерігаємо кожен рядок візерунка, нам потрібно надрукувати алфавіт спочатку у порядку зростання, тобто AB, а потім у зворотному порядку, тобто AB A. Для цього нам потрібно 3 петлі, 1-а для петля для загальної кількості рядків. 2-е для циклу для друку алфавітів у збільшенні, потім 3-го для циклу, який залишається всередині зовнішнього циклу 'i' і друкує алфавіти в тому ж рядку, але у зворотному порядку циклу 'j'.

Висновок

Наведений вище приклад та їх пояснення чітко показують, як зробити такі шаблони на Java. Хоча ці схеми здаються важкими на початку, але глибоко спостерігаючи за тим, як відбувається повторення шаблону в одному ряду, і відповідно до того, скільки циклів слід використовувати, це легко зробити з цього питання. Сьогодні також на інтерв'ю великих компаній кандидатів просять написати логіку моделей різного рівня складності. Тому що ця модель відображає основні логічні та програмні знання людини.

Рекомендована стаття

Це був посібник щодо Шаблони на Java. Тут ми обговорюємо Вступ до шаблонів на Java та приклади різних шаблонів разом з результатами. Ви також можете ознайомитися з іншими запропонованими нами статтями, щоб дізнатися більше -

  1. Зоряні візерунки на Яві
  2. Рамки в Java
  3. Макет на Java
  4. Вступ до шаблонів у PHP
  5. Шаблони в JavaScript з прикладами