記事「Java のパターン」では、Java のプログラミング言語(yǔ)を?qū)W習(xí)し、高度な概念に深く入る前に、ループの仕組みを理解することが重要です。ループには for、while、do-while ループの 3 種類があります。各ループは互いにわずかに異なるため、プログラムの特定の狀況に応じて使用されます。さまざまなループを使用するには、何らかのプログラミング ロジックが必要であり、そのために論理的思考力を必要とするパターン練習(xí)がプログラマーに與えられます。たとえば、幾何學(xué)的図形 (三角形、四角形など)、ピラミッド、星、數(shù)字、文字スタイルのさまざまなパターンのボックスをコンソール畫面に印刷できます。ループの形式や基本構(gòu)文はプログラミング言語(yǔ)によって異なる場(chǎng)合がありますが、これらのパターンを出力する一般的なロジックは同じです。
広告 このカテゴリーの人気コース JAVA マスタリー - スペシャライゼーション | 78 コース シリーズ | 15 回の模擬テストJava のパターンの例
いくつかの例を通して Java でパターンを描畫する方法を理解しましょう
例 1: 數(shù)字を使用してピラミッドの半分を印刷します。
コード:
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 ループは行數(shù)を指定します。この場(chǎng)合、行 (つまり 5 つ) を定義しました。それ以外の場(chǎng)合は、ユーザーからの入力を取得して変數(shù)に格納することもできます。內(nèi)側(cè)のループは、特定の行の數(shù)値を出力します。 1 行の完了または ‘j’ ループの終了後、println() を使用して行が変更されます。
例 2: 數(shù)字の矢印を印刷します。
コード:
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 つの半分に分割し、それぞれの半分に 2 つのループを使用する必要があります。行の前半は行に設(shè)定された初期値になりますが、行數(shù)は下半分の初期値より 1 減ります。両方の半分の內(nèi)側(cè)のループは、外側(cè)のループに従って各行を反復(fù)処理するために使用されます。
例 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 から rows 変數(shù)まで動(dòng)作するピラミッドの出力の合計(jì)行數(shù)を念頭に置きます。次に、最初にピラミッド內(nèi)のスペースを印刷し、次にスペースの後にパターン (*) を印刷する必要があります。この 2 番目と 3 番目では、外側(cè)のループ「i」內(nèi)で for ループが使用されます。
例 4: 數(shù)字を使用して半逆ピラミッドを印刷します。
コード:
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(); } } }
出力:
単純なハーフピラミッドは、數(shù)字、*、または印刷する文字を処理する必要があるため簡(jiǎn)単ですが、逆ピラミッドの場(chǎng)合は、最初にスペースを印刷し、次にパターンを印刷する必要があります。この場(chǎng)合、これは (*) です。 。したがって、3 つの for ループが使用され、完全なピラミッドの場(chǎng)合と同様に機(jī)能します。
例 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 つの for ループを使用し、1 つは行數(shù)用、もう 1 つは特定の行の文字出力用です。ただし、最も注意しなければならないのは文字データの扱いです。たとえば、Java では「A」の數(shù)値は 65 なので、すべての數(shù)學(xué)的論理はアルファベットの數(shù)値を使用して実行され、最終的には文字形式で出力されます。
例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 と似ていますが、唯一の違いは、目的のパターンを出力するために使用される?yún)g純なロジックです。
例 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(); } } }
出力:
For printing of square, we need length and width, i.e. both sides of the square should be the same, which is 5 in our case. So the first ? ?loop is used for the length or number of rows in the square, and the inner ? ?loop is used for the width of the square, i.e. 5 stars in a single row.
Example 8: Printing rectangle using stars (*).
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:
The basic logic of printing the rectangle of (*) is the same as printing of squares, the only difference between is the different length and width of the rectangle. Here ‘i’ loop is for the length of the rectangle, and the inner ‘j’ loop is for the width of the loop. Our program is taken as a constant value; we can also ask the user and store them in separate variables.
Example 9: Printing a Diamond using stars.
Printing a diamond in Java is a very simple process. It involves printing 2 pyramids, 1 in the upward direction and another in an inverted direction. Basically, we need to use the loops to do the coding to print two separate pyramids.
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 the above example, almost the same logic is applied to create both pyramids, one in an upward direction and another in an inverted direction. Thus, the first ?loop is for the number of lines or rows in the pattern, and the second is for spaces and the stars (*) pattern in the pattern.
Output:
Example 10: Printing binary numbers in a stair format.
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 the above example, in order to print binary pattern, outer ?for ?loop ‘i’ is used for a total number of rows, and the inner ?for ?loop ‘j’ is used to iterate till the outer loop ‘i’ because for the 1st row, we need 1 value, for the 2nd row we need 2 values, and so on. ?If? and else ?statements are used in order to print the alternate value of 0 and 1. Suppose for the first time i=1, j=1 and 1%2 != 0, then 1 is printed, and execution will move out of the inner loop.
Example 11: Program to print repeating alphabet patterns.
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:
In the above example, if we observe each row of pattern, we need to print the alphabet first in the increasing order, i.e. A B and then in the reverse order, i.e. A B A. For this, we need 3 loops, 1st ?for? loop for the total number of rows. 2nd ?for? loop to print the alphabets in increasing order then the 3rd ?for? loop which remains inside the outer ‘i’ loop and prints the alphabets in the same line but in reverse order of ‘j’ loop.
Conclusion
The above example and their explanations clearly show how to make such patterns in Java. Though these patterns seem to be difficult in the starting, observing them deeply of how the repetition of pattern is happening in a single row and according to how many loops should be used, it becomes easy to do hands-on on this. Today also, in interviews of big companies, candidates are asked to write the logic of patterns of varying difficulty levels because this pattern making shows the basic logical and programming knowledge of an individual.
以上がJava のパターンの詳細(xì)內(nèi)容です。詳細(xì)については、PHP 中國(guó)語(yǔ) Web サイトの他の関連記事を參照してください。

ホットAIツール

Undress AI Tool
脫衣畫像を無(wú)料で

Undresser.AI Undress
リアルなヌード寫真を作成する AI 搭載アプリ

AI Clothes Remover
寫真から衣服を削除するオンライン AI ツール。

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無(wú)料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡(jiǎn)単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無(wú)料のコードエディター

SublimeText3 中國(guó)語(yǔ)版
中國(guó)語(yǔ)版、とても使いやすい

ゼンドスタジオ 13.0.1
強(qiáng)力な PHP 統(tǒng)合開発環(huán)境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック

Laravelは、ネイティブSQLクエリの使用をサポートしていますが、安全性を確保するためにパラメーターバインディングを優(yōu)先する必要があります。 1。DB:: Select()を使用して、SQL注入を防ぐためにパラメーターバインディングを使用して選択クエリを?qū)g行します。 2。db:: update()を使用して更新操作を?qū)g行し、影響を受ける行の數(shù)を返します。 3。DB::挿入()を使用してデータを挿入します。 4。db:: delete()を使用してデータを削除します。 5。DB:: Statement()を使用して、Create、Alterなどの結(jié)果セットなしでSQLステートメントを?qū)g行します。 6. QueryBuilderでWhereraw、SelectRaw、およびその他の方法を使用して、ネイティブ表現(xiàn)を組み合わせてセキュリティを改善することをお?jiǎng)幛幛筏蓼?/p>

Junit5とMockitoを使用して、単體テストの依存関係を効果的に分離します。 1. @mockを介して模擬オブジェクトを作成します。@injectmocksテスト済みインスタンスを挿入@extendwithを有効にします。 2。when()。sonreturn()を使用してシミュレーションの動(dòng)作を定義し、()を検証してメソッド呼び出しとパラメーターの數(shù)を確認(rèn)します。 3。例外シナリオをシミュレートし、エラー処理を確認(rèn)できます。 4.コンストラクターの注入を推奨し、過(guò)剰なシミュレーションを避け、テスト原子性を維持します。 5。ASSERTALL()を使用してアサーションをマージし、@Nestedはテストシナリオを整理して、テストの保守性と信頼性を向上させます。

テーブルレイアウト:固定は、レイアウトに影響するコンテンツを避けるために、最初の行のセル幅によってテーブル列の幅を強(qiáng)制的に決定します。 1.テーブルレイアウトの設(shè)定:テーブル幅を修正して指定します。 2.最初の行th/tdの特定の列幅比を設(shè)定します。 3。ホワイトスペースを使用:Nowrap、Overflow:Hidden and Text-Overflow:Ellipsisを使用してテキストオーバーフローを制御します。 4。安定したレイアウトと高性能レンダリングを必要とするバックグラウンド管理、データレポート、およびその他のシナリオに適用できます。これは、レイアウトジッターを効果的に防止し、レンダリング効率を向上させることができます。

json.loads()は、JSON文字列をPythonデータ構(gòu)造に解析するために使用されます。 1.入力は二重引用符で包まれた文字列でなければならず、ブール値は真/falseです。 2。NULL→なし、オブジェクト→DICT、配列→リストなどの自動(dòng)変換をサポートします。 3. APIで返されるJSON文字列を処理するためによく使用されます。たとえば、response_stringは、json.loads()で解析した後に直接アクセスできます。それを使用する場(chǎng)合、JSON形式が正しいことを確認(rèn)する必要があります。そうしないと、例外がスローされます。

選択することは、shoseTheatheApsoSOFRISTEXTYPEBASEDONUSECASE、TINGASSINGLEFIELD、化合物、マルチケイ、テキスト、GEOSPATIAL、ORTTLINDEXES.2.APPLYTHEESRRULEWHENCREATINGCOMPoundExes

Mavenは、Javaプロジェクト管理と建設(shè)の標(biāo)準(zhǔn)ツールです。答えは、POM.xmlを使用してプロジェクト構(gòu)造、依存関係管理、建設(shè)ライフサイクルの自動(dòng)化、プラグイン拡張機(jī)能を標(biāo)準(zhǔn)化するという事実にあります。 1. pom.xmlを使用して、GroupID、artifactid、バージョン、依存関係を定義します。 2。MVNCLEAN、コンパイル、テスト、パッケージ、インストール、展開などのマスターコアコマンド。 3.依存関係管理と除外を使用して、依存関係バージョンと競(jìng)合を管理します。 4.マルチモジュールプロジェクト構(gòu)造を通じて大規(guī)模なアプリケーションを整理し、親POMによって均一に管理されます。 5。

Pythonでは、関數(shù)引數(shù)の転送は「オブジェクト參照を渡す」、つまり1です。可変オブジェクト(リストや辭書など)の場(chǎng)合、関數(shù)內(nèi)のin-situ変更(付録など)は元のオブジェクトに直接影響します。 2。不変のオブジェクト(整數(shù)、文字列など)の場(chǎng)合、元のオブジェクトを関數(shù)で変更することはできず、再割り當(dāng)ては新しいオブジェクトのみを作成します。 3.パラメーターは、參照のコピーを渡します。変數(shù)が関數(shù)(LST = [...]など)で反省されている場(chǎng)合、元のオブジェクトとの接続は影響を受けず、外部変數(shù)は影響を受けません。したがって、変更可能なオブジェクトを変更すると元のデータに影響しますが、不変のオブジェクトと再割り當(dāng)てはそうではありません。これは、関數(shù)內(nèi)の変更後にリストが外部から表示される理由を説明しますが、整數(shù)の変更はローカルでのみです。
