Wprowadzenie do wzorców w Javie

W artykule Wzorce w Javie, zanim nauczysz się jakiegokolwiek języka programowania w Javie i zagłębisz się w zaawansowane koncepcje, bardzo ważne jest przede wszystkim zrozumienie działania pętli. Chociaż istnieją 3 rodzaje pętli, które są dla pętli for, while i do-while. Każda pętla jest używana zgodnie z konkretną sytuacją programu, ponieważ różnią się one nieznacznie od siebie. Aby korzystać z różnych pętli, wymagana jest pewna logika programowania, w tym celu praktyka wzorców jest przekazywana programistom, ponieważ wymaga użycia mocy logicznej i rozumowania. Może to być druk figur geometrycznych (takich jak trójkąt, kwadrat itp.), Piramidy, pudełek w różnych wzorach gwiazd, liczb, stylu znaków na ekranie konsoli. Format lub podstawowa składnia pętli może różnić się w zależności od języka programowania, ale ogólna logika drukowania tych wzorców pozostaje taka sama.

Przykład wzorców w Javie

Zobaczmy, jak rysować wzory w Javie na kilku przykładach

Przykład 1: Drukowanie pół piramidy za pomocą liczb.

Kod:

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();
)
)
)

Wynik:

W powyższym przykładzie do wydrukowania wzoru potrzebne są tylko 2 podstawowe pętle, pierwsza dla pętli for dotyczy liczby wierszy. W naszym przypadku zdefiniowaliśmy wiersze, tj. 5, w przeciwnym razie możemy również pobrać dane wejściowe od użytkownika i zapisać je w zmiennej. Wewnętrzna pętla służy do drukowania liczb w określonym rzędzie. Po zakończeniu 1 rzędu lub końca pętli „j” wiersz zmienia się za pomocą println ().

Przykład 2: Drukowanie strzałki liczb.

Kod:

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();
)
)
)

Wynik:

W powyższym przykładzie musimy podzielić strzałkę na dwie połowy i użyć 2 pętli na każdą połowę. W pierwszej połowie liczby wierszy byłaby ustawiona wartość początkowa dla rzędów, podczas gdy dla dolnej połowy liczba rzędów jest o 1 mniejsza niż wartość początkowa. Wewnętrzne pętle dla obu połówek służą do iteracji przez każdy rząd zgodnie z zewnętrzną pętlą.

Przykład 3: Drukowanie pełnej piramidy za pomocą gwiazdek (*).

Kod:

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();
)
)
)

Wynik:

W powyższym przykładzie musimy zrobić 3 rzeczy, tj. Pamiętać o całkowitej liczbie wierszy do wydrukowania piramidy, dla której pierwsza pętla for działa od zmiennej od 1 do wierszy. Po drugie, najpierw musimy wydrukować spacje w piramidzie, a następnie wzór (*) za spacjami. W tym drugim i trzecim przypadku stosuje się pętle znajdujące się w zewnętrznej pętli „i”.

Przykład 4: Drukowanie połowy odwróconej piramidy za pomocą liczb.

Kod:

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();
)
)
)

Wynik:

Prosta pół piramida jest łatwa, ponieważ musimy obsługiwać cyfry * lub znaki, które drukujemy, ale w przypadku piramidy odwrotnej musimy najpierw wydrukować spacje, a następnie wzór, który w naszym przypadku jest (*). Wykorzystywane są więc 3 pętle działające podobnie do tych w przypadku pełnej piramidy.

Przykład 5: Drukowanie pół piramidy za pomocą alfabetów.

Kod:

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();
)
)
)

Wynik:

Piramida jest drukowana z taką samą logiką, jak użyta w powyższym przykładzie, używając 2 dla pętli, jednego dla liczby rzędów i innych dla znaku drukującego w danym rzędzie. Ale najważniejszą rzeczą, na którą należy zwrócić uwagę, jest obsługa danych znaków. „A” ma wartość liczbową 65 w Javie, więc cała logika matematyczna jest wykonywana przy użyciu wartości liczbowej alfabetu, a na końcu jest drukowana w formacie znakowym.

Przykład 6: Drukowanie wzoru alfabetów.

Kod:

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();
)
)
)

Wynik:

Podstawowy wzorzec zastosowany do obliczenia wartości znaku i pętli 2 for w powyższym przykładzie jest podobny do różnicy w przykładzie 5, z tą różnicą, że jest to prosta logika użyta do wydrukowania pożądanego wzorca.

Przykład 7: Drukowanie kwadratu za pomocą gwiazdek (*).

Kod:

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();
)
)
)

Wynik:

Do drukowania kwadratu potrzebujemy długości i szerokości, tzn. Obie strony kwadratu powinny być takie same, w naszym przypadku jest to 5. Tak więc pierwsza pętla for jest używana do długości lub liczby rzędów w kwadracie, a wewnętrzna pętla for jest używana do szerokości kwadratu, tj. 5 gwiazdek w jednym rzędzie.

Przykład 8: Drukowanie prostokąta za pomocą gwiazdek (*).

Kod:

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();
)
)
)

Wynik:

Podstawowa logika drukowania prostokąta (*) jest taka sama jak drukowanie kwadratów, jedyną różnicą między nimi jest różna długość i szerokość prostokąta. Tutaj pętla „i” odnosi się do długości prostokąta, a wewnętrzna pętla „j” dotyczy szerokości pętli. W naszym programie jest traktowany jako stała wartość, możemy również zapytać użytkownika i zapisać go w osobnych zmiennych.

Przykład 9: Drukowanie diamentu za pomocą gwiazdek.

Drukowanie diamentu w Javie jest bardzo prostym procesem. Polega na wydrukowaniu 2 piramid, 1 w kierunku do góry, a drugiej w kierunku odwróconym. Zasadniczo musimy używać pętli w taki sam sposób, jak kodujemy w celu wydrukowania dwóch oddzielnych piramid.

Kod:

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();
)
)
)

W powyższym przykładzie zastosowano prawie tę samą logikę do tworzenia obu piramid, jednej w kierunku do góry, a drugiej w kierunku odwróconym. Najpierw pętla dotyczy liczby linii lub rzędów we wzorze, a kolejne dwie pętle dotyczą spacji i wzoru gwiazd (*) we wzorze.

Wynik:

Przykład 10: Drukowanie liczb binarnych w formacie schodów.

Kod:

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();
)
)
)

Wynik:

W powyższym przykładzie, w celu wydrukowania wzoru binarnego, zewnętrzna dla pętli „i” jest używana do całkowitej liczby wierszy, a wewnętrzna dla pętli „j” służy do iteracji aż do zewnętrznej pętli „i”, ponieważ dla w pierwszym rzędzie potrzebujemy 1 wartości, w drugim rzędzie potrzebujemy 2 wartości itd. Jeśli i jeszcze użyte są instrukcje w celu wypisania alternatywnej wartości 0 i 1. Załóżmy, że po raz pierwszy i = 1, j = 1 i 1% 2! = 0, wówczas drukowane jest 1, a wykonanie przeniesie się z Pętla wewnętrzna.

Przykład 11: Program do drukowania powtarzającego się wzoru alfabetu.

Kod:

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();
)
)
)

Wynik:

W powyższym przykładzie, jeśli obserwujemy każdy rząd wzoru, musimy najpierw wydrukować alfabet w kolejności rosnącej, tj. AB, a następnie w odwrotnej kolejności, tj. AB A. W tym celu potrzebujemy 3 pętli, 1 dla pętla dla całkowitej liczby wierszy. Druga pętla for drukuje alfabety w kolejności rosnącej, a następnie trzecia pętla for, która pozostaje wewnątrz zewnętrznej pętli „i” i drukuje alfabety w tej samej linii, ale w odwrotnej kolejności do pętli „j”.

Wniosek

Powyższy przykład i ich wyjaśnienia wyraźnie pokazują, jak tworzyć takie wzorce w Javie. Chociaż te wzorce wydają się trudne na początku, ale obserwowanie ich głęboko, jak powtarzanie się wzoru odbywa się w jednym rzędzie i zgodnie z tym, ile pętli należy użyć, staje się łatwe do zrobienia w tym zakresie. Dzisiaj również w rozmowach z dużymi firmami kandydaci proszeni są o napisanie logiki wzorców o różnych poziomach trudności. Ponieważ tworzenie wzorów pokazuje podstawową wiedzę logiczną i programistyczną jednostki.

Polecany artykuł

To był przewodnik po wzorcach w Javie. Tutaj omawiamy wprowadzenie do wzorców w Javie i przykłady różnych wzorców wraz z danymi wyjściowymi. Możesz także przejrzeć nasze inne sugerowane artykuły, aby dowiedzieć się więcej -

  1. Wzory gwiazd w Javie
  2. Frameworki w Javie
  3. Układ w Javie
  4. Wprowadzenie do wzorców w PHP
  5. Wzory w JavaScript z przykładami