C#のネストされたループを使ってダイヤモンド形を表示する方法
C#を使えば、以下のようなダイヤモンド(菱形)のパターンを簡単にコンソールに表示できます。
$ $$$ $$$$$ $$$$$$$ $$$$$$$$$ $$$$$$$ $$$$$ $$$ $
ダイヤモンド形を表示するためのポイント
ダイヤモンド形を出力するには、次の3つの要素に注目する必要があります。
- 行数(ダイヤモンド全体の高さ)
- 表示する記号(ここでは「$」)
- 先頭に入れる空白(スペース)の数
これらを意識しながらコードを組み立てれば、下記のようにダイヤモンド形を簡単に作成できます。ポイントは、上半分では空白を減らしながら記号を増やし、下半分ではその逆を行うことです。
サンプルコード
using System;
namespace Program {
public class Demo {
public static void Main(String[] args) {
int i, j, r, d, e;
// 行数 = 5
r = 5;
// 表示する「$」の数
d = 1;
// 空白の数
e = r - 1;
for (i = 1; i < r * 2; i++) {
// 空白を表示
for (j = 1; j <= e; j++)
Console.Write(" ");
// 「$」を表示
for (j = 1; j < d * 2; j++)
Console.Write("$");
Console.WriteLine();
// 上半分か下半分かで処理を切り替え
if (i < r) {
e--;
d++;
} else {
e++;
d--;
}
}
}
}
}実行結果
$ $$$ $$$$$ $$$$$$$ $$$$$$$$$ $$$$$$$ $$$$$ $$$ $
コードの解説
このプログラムの動作を順番に見ていきましょう。
- 変数の初期化: 変数
rに行数(5)、dに最初に表示する記号の数(1)、eに空白の数(r - 1 = 4)を設定します。 - 外側のループ: 全体で
r * 2 - 1回(9回)繰り返し、ダイヤモンドの各行を処理します。 - 内側のループ(空白): 変数
eの回数だけ半角スペースを出力し、ダイヤモンドの中央揃えを実現します。 - 内側のループ(記号):
d * 2 - 1個の「$」を奇数個ずつ出力します。 - 増減の切り替え: 上半分(
i < r)では空白を1つ減らし、記号を2つずつ増やします。下半分では逆に空白を増やし、記号を減らすことで、きれいなダイヤモンド形が完成します。
このように、二重ループと条件分岐を組み合わせることで、さまざまな図形パターンを自由に出力できます。行数や表示する文字を変更すれば、ピラミッド型や他の模様にも応用できるので、ぜひ試してみてください。
-
JavaScriptでページを印刷するにはどうすればよいですか?
JavaScriptでページを印刷するには、print()メソッドを使用します。このメソッドを呼び出すと、ブラウザの標準的な印刷ダイアログボックスが開き、どのプリンターを使用するか、部数はいくつにするかといった印刷オプションを簡単に設定できます。以下は、実際に印刷ダイアログが表示された様子の例です。サンプルコード次のコードを実行すると、ボタンをクリックするだけでページを印刷できる動作を確認できます。<!DOCTYPE html> <html> <body> &nb
-
awk入門ガイド:Linuxコマンドラインでテキスト処理をマスターしよう
awk、sed、grepは、LinuxやUNIXのコマンドラインで最も強力なテキスト処理ツールの3つです。本記事では、awkの基本的な使い方から実用的なワンライナー(1行コマンド)まで、初心者にもわかりやすく解説します。 awkとは何か AWKは、ファイルやデータストリーム内のテキストベースのデータを処理するために設計されたプログラミング言語です。1970年代にベル研究所で開発されました。歴史は古いものの、その性能は現在でも非常に強力かつ効率的で、テキスト処理において今なお第一線で活躍しています。 準備:練習用ファイルを作成する まずはawkの基本から始めましょう。この演習ではダミーファイ