Введение в паттерны в 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 базовых цикла, первый цикл for соответствует количеству строк. В нашем случае мы определили строки, то есть 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 вещи, то есть иметь в виду общее количество строк для печати пирамиды, для которой первый цикл for работает с переменной от 1 до строки. Во-вторых, нам сначала нужно напечатать пробелы в пирамиде, а затем шаблон (*) после пробелов. Для этого используются второй и третий циклы for, которые находятся внутри внешнего цикла '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 for в вышеприведенном примере, аналогичен разнице в примере 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. Таким образом, первый цикл for используется для длины или количества строк в квадрате, а внутренний цикл for используется для ширины квадрата, то есть 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();
)
)
)

В приведенном выше примере почти та же логика применяется для создания обеих пирамид, одна в направлении вверх, а другая в перевернутом направлении. Самый первый цикл for - это количество строк или строк в шаблоне, а два других цикла - для пробелов и звездочек (*) в шаблоне.

Выход:

Пример 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();
)
)
)

Выход:

В приведенном выше примере, чтобы напечатать двоичный шаблон, внешний цикл for «i» используется для общего числа строк, а внутренний цикл «j» используется для итерации до внешнего цикла «i», потому что для 1-й строке нам нужно 1 значение, для 2-й строки нам нужно 2 значения и так далее. Если операторы if и else используются для печати альтернативных значений 0 и 1. Предположим, что в первый раз i = 1, j = 1 и 1% 2! = 0, затем выводится 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-й цикл for для печати алфавитов в возрастающем порядке, затем 3-й цикл for, который остается внутри внешнего цикла «i» и печатает алфавиты в той же строке, но в обратном порядке цикла «j».

Вывод

Приведенный выше пример и его объяснения ясно показывают, как создавать такие шаблоны в Java. Хотя эти паттерны кажутся сложными в начале, но они тщательно наблюдают за тем, как повторение паттерна происходит в одном ряду и в зависимости от того, сколько циклов следует использовать, становится легко разобраться с этим. Сегодня также в интервью крупных компаний кандидатов просят написать логику шаблонов разного уровня сложности. Потому что эта модель показывает основные логические и программирующие знания человека.

Рекомендуемая статья

Это было руководство по шаблонам в Java. Здесь мы обсуждаем введение в шаблоны в Java и примеры различных шаблонов вместе с выводом. Вы также можете просмотреть наши другие предлагаемые статьи, чтобы узнать больше -

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