【C#】順次実行、条件分岐、繰り返しの処理の練習2

練習問題を解いて、理解を深めましょう

問題

以下のように表示するプログラムを書いてください なお、難行表示するかは、初めにキーボードから入力するものとします また、以下の条件に従ってください

*
**
***
****
*****

条件)
繰り返し処理の中に繰り返し処理が入る
二重ループ構造とする 繰り返し処理にはfor文を使う
出力する文字列は、+演算子を使って連結させる

解き方

負の数が入力されるまで繰り返し数値を入力し、最後の負の数も含めて画面に表示するプログラムを作成する手順は以下の通りです。

解く手順

  1. プログラムの目的を理解する
    • * で構成されたピラミッド形を表示するプログラムを作成します。
    • 表示する行数はユーザーから入力します。
    • 二重ループを使って表示を行います。
  2. ユーザーからの入力を受け取る
    • ユーザーに表示する行数を入力してもらいます。
    • 入力された値を整数として変数に格納します。
  3. 外側のループを作成する
    • 外側のループは行を制御します。例えば、5行表示する場合、ループは5回繰り返されます。
  4. 内側のループを作成する
    • 内側のループは列を制御します。各行に適切な数の * を表示するために使用します。
  5. 文字列を連結して行を作成する
    • 内側のループで * を連結して1行分の文字列を作成します。
  6. 行を表示する
    • 内側のループが終わったら、その行の * をコンソールに表示します。

実際のプログラムと手順に沿った説明

// 1. ユーザーに表示する行数を入力してもらいます
Console.Write("行数を入力してね:");
var inputLine = Console.ReadLine();

// ユーザー入力を整数として取得します
var numberOfRows = int.Parse(inputLine);

// 2. 外側のループを作成します
for (int currentRow = 1; currentRow <= numberOfRows; currentRow++)
{
    // 3. 行の文字列を保持するための変数を用意します
    var stars = "*";

    // 4. 内側のループを作成します
    for (int currentColumn = 1; currentColumn < currentRow; currentColumn++)
    {
        // 5. stars変数に*を追加していきます
        stars += "*";
    }

    // 6. 完成した行をコンソールに表示します
    Console.WriteLine(stars);
}

ステップバイステップの詳細な解説

1.ユーザー入力の取得

Console.Write("行数を入力してね:");
var inputLine = Console.ReadLine();

// ユーザー入力を整数として取得します
var numberOfRows = int.Parse(inputLine);
  • Console.Write でユーザーにメッセージを表示し、行数の入力を促します。
  • Console.ReadLine() でユーザーの入力を文字列として取得し、それを int.Parse で整数に変換して numberOfRows変数に格納します。

2. 外側のループの作成

for (int currentRow = 1; currentRow <= numberOfRows; currentRow++)
  • for 文を使って、1から numberOfRows までの値を持つ currentRowをループさせます。
  • このループは各行を担当します。例えば、5行表示する場合、このループは5回繰り返されます。

3. 行の文字列を保持する変数の用意

var stars = "*";
  • 現在の行の * を保持するための空の文字列 stars を初期化します。

4. 内側のループの作成

for (int currentColumn = 1; currentColumn <= currentRow; currentColumn++)
  • for 文を使って、1から現在の行番号 currentRowまでの値を持つ currentColumnをループさせます。
  • このループは現在の行に表示する * の数を決定します。

5. 文字列の連結

stars += "*";
  • stars 変数に * を追加します。
  • この操作を内側のループで currentRow回繰り返すことで、現在の行に必要な数の * を作成します。

6. 行の表示

Console.WriteLine(starts);
  • 完成した starts文字列をコンソールに表示します。
  • 外側のループが次の currentRow に進むと、新しい行が作成され、再び * が追加されます。

この手順に従ってプログラムを作成することで、指定された行数のピラミッド形  を表示することができます。

C#

Posted by hidepon