Inleiding tot patronen in Java

In het artikel Patronen in Java, voordat je een programmeertaal in Java leert en diep in de geavanceerde concepten duikt, is het erg belangrijk en vooral om de werking van lussen te begrijpen. Hoewel er 3 soorten loops zijn voor, while en do-while-loop. Elke lus wordt gebruikt in overeenstemming met de specifieke situatie van een programma, omdat ze enigszins van elkaar verschillen. Om verschillende lussen te gebruiken, is enige programmeerlogica vereist en voor dit doel wordt aan de programmeurs patronen geoefend omdat het logische en redeneerkracht gebruikt. Dit kan het afdrukken zijn van geometrische figuren (zoals driehoek, vierkant, enz.), Piramide, dozen in verschillende patronen van sterren, cijfers, tekenstijl op het consolescherm. Het formaat of de basissyntaxis van de lussen kan verschillen van de ene programmeertaal tot de andere, maar de algemene logica om deze patronen af ​​te drukken, blijft hetzelfde.

Voorbeeld van patronen in Java

Laten we begrijpen hoe we patronen in Java kunnen tekenen aan de hand van enkele voorbeelden

Voorbeeld 1: Halve piramide afdrukken met behulp van cijfers.

Code:

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

Output:

In het bovenstaande voorbeeld zijn slechts 2 basislussen nodig om het patroon af te drukken, de eerste voor lus is voor het aantal rijen. In ons geval hebben we de rijen gedefinieerd, dwz 5, anders kunnen we ook de invoer van de gebruiker nemen en deze in een variabele opslaan. De binnenste lus is om de nummers in een bepaalde rij af te drukken. Na het voltooien van 1 rij of het einde van de 'j'-lus, wordt de regel gewijzigd met println ().

Voorbeeld 2: Pijl met cijfers afdrukken.

Code:

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

Output:

In het bovenstaande voorbeeld moeten we de pijl in twee helften verdelen en 2 lussen voor elke helft gebruiken. In de eerste helft van het aantal rijen zou de beginwaarde voor rijen zijn, terwijl voor de onderste helft het aantal rijen 1 minder is dan de beginwaarde. Binnenste lussen voor beide helften worden gebruikt om elke rij te doorlopen volgens de buitenste lus.

Voorbeeld3: Volledige piramide afdrukken met sterren (*).

Code:

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

Output:

In het bovenstaande voorbeeld moeten we 3 dingen doen, dat wil zeggen, rekening houdend met het totale aantal rijen voor het afdrukken van de piramide waarvoor de eerste for-lus van 1 tot rijen variabel werkt. Ten tweede moeten we eerst de spaties in de piramide afdrukken en vervolgens het patroon (*) achter de spaties. Hiervoor worden tweede en derde voor lussen gebruikt die zich binnen de buitenste lus 'i' bevinden.

Voorbeeld 4: half omgekeerde piramide afdrukken met behulp van cijfers.

Code:

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

Output:

Eenvoudige halve piramide is eenvoudig omdat we de cijfers, * of de tekens die we afdrukken moeten verwerken, maar voor de omgekeerde piramide moeten we eerst de spaties afdrukken en daarna het patroon dat in ons geval (*) is. Dus 3 voor lussen worden gebruikt die op dezelfde manier werken als die in het geval van de volledige piramide.

Voorbeeld 5: Halve piramide afdrukken met alfabetten.

Code:

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

Output:

De piramide wordt afgedrukt met dezelfde logica als in het bovenstaande voorbeeld met 2 voor lussen, één voor het aantal rijen en andere voor het afdrukken van tekens in een bepaalde rij. Maar het belangrijkste dat moet worden opgemerkt, is de verwerking van karaktergegevens. 'A' heeft een numerieke waarde 65 in Java, dus alle wiskundige logica wordt uitgevoerd met behulp van de numerieke waarde van het alfabet en uiteindelijk wordt het afgedrukt in de tekenindeling.

Voorbeeld 6: afdrukpatroon van alfabetten.

Code:

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

Output:

Het basispatroon dat wordt gevolgd om de tekenwaarde te behandelen en de 2 voor lussen in het bovenstaande voorbeeld is vergelijkbaar met Voorbeeld 5, alleen het verschil is de eenvoudige logica die wordt gebruikt om het gewenste patroon af te drukken.

Voorbeeld 7: Vierkant afdrukken met sterren (*).

Code:

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

Output:

Voor het afdrukken van vierkant hebben we lengte en breedte nodig, dwz dat beide zijden van het vierkant hetzelfde moeten zijn, in ons geval 5. Dus de eerste voor lus wordt gebruikt voor de lengte of het aantal rijen in het vierkant en de binnenste voor lus wordt gebruikt voor de breedte van het vierkant, dat wil zeggen 5 sterren in een enkele rij.

Voorbeeld 8: rechthoek afdrukken met sterren (*).

Code:

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

Output:

De basislogica van het afdrukken van de rechthoek van (*) is hetzelfde als het afdrukken van vierkanten, het enige verschil tussen is een verschillende lengte en breedte van de rechthoek. Hier is de 'i'-lus de lengte van de rechthoek en de binnenste' j'-lus de breedte van de lus. In ons programma wordt het als een constante waarde beschouwd, we kunnen de gebruiker ook vragen en ze in afzonderlijke variabelen opslaan.

Voorbeeld 9: een diamant afdrukken met sterren.

Een diamant afdrukken in Java is een heel eenvoudig proces. Het gaat om het afdrukken van 2 piramides, 1 in opwaartse richting en een andere in omgekeerde richting. Dus eigenlijk moeten we de lussen op dezelfde manier gebruiken als de codering voor het afdrukken van twee afzonderlijke piramides.

Code:

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

In het bovenstaande voorbeeld wordt bijna dezelfde logica toegepast voor het maken van beide piramides, een in opwaartse richting en een andere in omgekeerde richting. De allereerste voor lus is voor het aantal lijnen of rijen in het patroon en nog eens twee voor lussen zijn voor spaties en het sterren (*) patroon in het patroon.

Output:

Voorbeeld 10: binaire getallen afdrukken in een trapindeling.

Code:

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

Output:

In het bovenstaande voorbeeld, om binair patroon af te drukken, wordt de buitenste voor lus 'i' gebruikt voor het totale aantal rijen en de binnenste voor lus 'j' wordt gebruikt om te herhalen tot de buitenste lus 'i' omdat voor de 1e rij hebben we 1 waarde nodig, voor de 2e rij hebben we 2 waarden nodig, enzovoort. Als en anders instructies worden gebruikt om een ​​alternatieve waarde van 0 en 1 af te drukken. Stel dat i = 1, j = 1 en 1% 2! = 0 dan wordt 1 afgedrukt en wordt de uitvoering uit de binnenste lus.

Voorbeeld 11: Programma voor het afdrukken van een herhalend alfabetpatroon.

Code:

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

Output:

Als we in het bovenstaande voorbeeld elke rij van patronen observeren, moeten we het alfabet eerst in de toenemende volgorde afdrukken, dwz AB en vervolgens in de omgekeerde volgorde, bijvoorbeeld AB A. Hiervoor hebben we 3 lussen nodig, 1e voor lus voor het totale aantal rijen. 2e voor lus om de alfabetten in oplopende volgorde af te drukken dan de 3e voor lus die binnen de buitenste 'i'-lus blijft en de alfabetten in dezelfde regel afdrukt, maar in omgekeerde volgorde van de' j'-lus.

Conclusie

Het bovenstaande voorbeeld en hun uitleg laten duidelijk zien hoe dergelijke patronen in Java te maken. Hoewel deze patronen in het begin moeilijk lijken te zijn, maar ze diep observeren hoe de herhaling van het patroon gebeurt in een enkele rij en volgens hoeveel lussen moeten worden gebruikt, wordt het gemakkelijk om hier praktijkgericht mee om te gaan. Tegenwoordig wordt ook in interviews met grote bedrijven aan kandidaten gevraagd om de logica van patronen met verschillende moeilijkheidsgraden te schrijven. Omdat deze patroonvorming de fundamentele logische en programmeerkennis van een individu toont.

Aanbevolen artikel

Dit is een gids voor patronen in Java geweest. Hier bespreken we Inleiding tot patronen in Java en de voorbeelden van verschillende patronen samen met uitvoer. U kunt ook onze andere voorgestelde artikelen doornemen voor meer informatie -

  1. Sterpatronen in Java
  2. Frameworks in Java
  3. Indeling in Java
  4. Inleiding tot patronen in PHP
  5. Patronen in JavaScript met voorbeelden