(Java) ループ。パラメータ付きループ(for)


画面に同じ単語を表示する必要がある状況を想像してみてください。「HELLO」という単語を 10 回言ってみましょう。どうすればいいですか?
コマンドを 10 回取得して書き込むことができます。cout << 「こんにちは」;

しかし、10 回ではなく、20 回、30 回、40 回、200 回必要な場合はどうでしょうか。この場合、コピーには非常に時間がかかります。また、画面に情報を表示する回数をユーザーが選択する必要がある場合は? 

この課題に対処するにはループ
と呼ばれる特別な構造が役に立ちます。
ループとは、特定のコマンド シーケンスが数回繰り返されるアルゴリズム構造です。


Java プログラミング言語には、変数によるループ (for) と条件によるループ (while と do...while) の 2 種類があります

最初のタイプのサイクルから始めましょう。

変数または既知のステップ数 (for) を使用したループ

一部のアクションの繰り返し回数がわかっている、または既知のデータを使用して繰り返し回数を計算できることがよくあります。一部のプログラミング言語には、ロシア語で REPEAT (回数) のように聞こえるコマンドがあります。つまり、正確な繰り返し回数を指定できます。

このサイクルがマシン レベルでどのように機能するかを見るのは興味深いことです。
1. 特定のメモリ セルがメモリに割り当てられ、繰り返し回数が書き込まれます。
2. プログラムがループ本体を 1 回実行すると、このセル (カウンター) の内容が 1 つ減ります。
3. このセルがゼロになると、ループの実行が終了します。

Java プログラミング言語には、そのような構造はありませんが、for 構造があります。  

for ループ ステートメントの一般的な形式は次のとおりです。 <プレ> <コード>for (/*式1*/; /*式2*/; /*式3*/ ) { /*1 つのステートメントまたはステートメントのブロック - ループ本体*/; } この構築には次のことが必要
です。 1. カウンタとなるメモリセルを明示的に割り当て、その初期値を設定する
2. サイクル本体が実行される条件が記述されている
3. このセルの値がどのように変化するかを示します。

実践編では、「Hello」という単語を 10 回表示してみます。次のタスクでは、この構造をより詳細に分析します。

for ループは、繰り返されるアクションをステップ実行する手段です。そのしくみを詳しく見てみましょう。

通常、for ループの一部は次の手順を実行します: 
1.初期値を設定します。
2.ループを継続するために条件テストを実行します。
3.ループ アクションを実行します。
4.テストで使用される値を更新します。 
条件が満たされるまで、手順 2 ~ 4 が繰り返されます。条件が false になるとすぐに、ループが終了し、for ループ ステートメントに続くステートメントが実行されます。

ループステートメントの一般的な形式に戻り、すべての部分をより詳細に分析しましょう <プレ> <コード>for (/*式1*/; /*式2*/; /*式3*/ ) { /*1 つのステートメントまたはステートメントのブロック - ループ本体*/; }

式 1

サイクル変数 (カウンター) の初期値の設定を担当し、セミコロンで終わります
例えば ​​: <プレ> オプション 1) i=0; //サイクル変数 i にはゼロに等しい初期値が割り当てられます。そんな記録で、 //変数 i はループの前に宣言する必要があります オプション 2) int i=0; //変数 i はサイクルヘッダーですぐに宣言できますが、 // この場合、ループがメモリから消去された後 オプション 3) ; //サイクル変数の初期化と宣言はまったく行われません。 // この場合、ループの前に宣言できます 式 2 <プレ> これは for ループを継続するための条件であり、真であるかどうかがチェックされます。 i<=10 // i が 10 以下である限りループは実行されます。 条件は何でもいい 式 3  <プレ> カウンタ変数の値を変更します。この値がないと、ループは無限とみなされます。 i<=10 // i が 10 以下である限りループは実行されます。 条件は何でもいい forループのタイトルを書く練習をしましょう

レコードのもう 1 つの特徴は、ループの本体に演算子が 1 つしかない場合、括弧を省略できることです。

各ヘッダー部分には、カンマで区切って複数のステートメントを含めることができます。
見出しの例:
<プレ> for ( i = 0; i < 10; i ++ ) { ... } //標準のタイトル <プレ> for ( i = 0, x = 1.; i < 10; i += 2, x *= 0.1 ){ ... } // この場合、ループ本体の実行後に変更される 2 つの変数を使用します。これらは変数 i と x です。 // 変数 i はステップ 2 で変更されます - i+=2 - i=i+2 の省略形 // 変数 x はステップごとに 0.1 倍増加します x=x*0.1 - x*=0.1 と省略します

これまでに作成した for ループを含むプログラムはすべて汎用とは言えません。ループ本体の繰り返し回数を自分で設定しているためです。
しかし、繰り返し回数が他の値に依存する場合はどうなるでしょうか?例えば、ユーザー自身がサイクルの繰り返し回数を設定したい。
この場合はどうすれば
良いのでしょうか? すべてがとてもシンプルです。数値の開始値と終了値の代わりに、ユーザーが計算または設定できる任意の変数を使用できます。

たとえば、ユーザーがキーボードから変数 N の値を入力して、1 から N までの数値の 2 乗を表示する必要があります。
プログラムは次のようになります。
  <プレ> #include <iostream> 名前空間 std を使用します。 主要() { int i、N; // ダッシュ中;ループ変数、N - 二乗を計算する最大数 シン>> N; // キーボードから「N」を入力 for ( i = 1; i <= N; i ++) // ループ: 1 から N までのすべての i について - 変数 i は 1 から N までの値を順番に取得します { cout << 「クヴァドラ・チスラ」「<<i<<」カラス」 <<i*i<<"\n" // 数値の 2 乗を特定の形式で出力し、新しい行に移動する } } ループに入ると、ステートメント i = 1 が実行され、変数 i はステップごとに 1 ずつ増加します (i ++)。条件 i <= N が true である間、ループが実行されます。ループの本体では、唯一の出力ステートメントが、指定された形式に従って数値自体とその四角形を画面に表示します。
二乗またはその他の低指数の場合は、乗算を使用することをお勧めします。

プログラムを実行し、変数 N のさまざまな値を使用した結果を確認します。