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


プログラミングのループ
画面に同じ単語を表示する必要がある状況を想像してみてください。「HELLO」という単語を 10 回言ってみましょう。どうすればいいですか?
cout << を 10 回実行して書き込むことができます。 「こんにちは」

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

このタスクに対処するために、ループと呼ばれる特別な構造を使用します。
 
ループは、コマンドの特定のシーケンスが数回繰り返されるアルゴリズム構造です。< /div>
C++ プログラミング言語には、変数ループ (for) と条件付きループ (while および do...while)

最初のタイプのサイクルから始めましょう。
 
変数 (for) でループ

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

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

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

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

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

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

 for ループの実行は、次の 手順で構成されています: 
1. ループ変数(カウンター)の初期値の設定;
2.ループを継続するための条件を確認しています;
3.ステップの実行 (ループ本体); 
4.ループ変数の値を変更します。
さらに、2 番目のステップの条件   が false になるまで、2 から 4 のステップが繰り返されます。条件が偽になるとすぐにループが終了し、ループ ステートメント 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++  // 変数 は、各ステップで 1 ずつ増加します。
 

ループ本体にステートメントが 1 つある場合

ループ本体にステートメントが 1 つだけある場合は、括弧を省略できます。

機能に循環

各ヘッダー部分には、カンマで区切って複数のステートメントを含めることができます。
 
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)。

N回繰り返す

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

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

プログラムを実行し、変数 N のさまざまな値でその作業の結果を確認します。