ここでは覚えた構文を省略形で記述する方法を学びましょう。
簡易記述が可能な構文があるって話なので気楽に聞いてください。
省略が可能な構文
省略が可能なのはif, for, while, foreachの4つです。
ここではC#のif文について理解しましょう。これはプログラムの基本構造で説明した選択にあたる処理です。なお、プログラムの基本構造が分からない人は先に次の記事を読んでください。if statement (ステートメント)いわゆる条件分岐でif文と呼びます。つまりは何らかの条件に従って、いずれかの処理を実行する構文です。パターン1: ifいくつかパターンがありますが、最も簡単な記述はこれです。これは条件を満たすとブロック内に処理が進み、満たさない場合はブロック...
ここではC#のfor文とwhile文について理解しましょう。これはプログラムの基本構造で説明した反復にあたる処理です。なお、プログラムの基本構造が分からない人は先に次の記事を読んでください。for statement (ステートメント)いわゆる繰り返し処理でfor文と呼びます。これは条件式を満たす限り、同じ処理を永遠と繰り返す構文です。ポイントは次の3つです。初期化で変数を宣言する 条件式に繰り返し条件を記述する 反復式で変数をインクリメ...
ここではC#のforeach文について理解しましょう。これはプログラムの基本構造で説明した反復にあたる処理です。なお、プログラムの基本構造が分からない人は先に次の記事を読んでください。foreach statement (ステートメント)for文に名前が似てますよね。実際にところ亜種みたいなものです。これは対象となるコレクションの全てに対して、繰り返し処理を行いたい場合に利用する構文です。ここでコレクションの定義ですが、簡単に言えば配列やリストなどの複数個...
では、実際にサンプルコードで省略形を見てみましょう。
namespace Sample
{
internal class Program
{
static void Main(string[] args)
{
int[] array = new int[] { 10, 20, 30, 40, 50 };
for (int i = 0; i < array.Length; i++)
{
// ifの省略形
if (i % 2 == 0)
Console.WriteLine(array[i]);
else
Console.WriteLine(i);
}
Console.WriteLine();
// forの省略形
for (int i = 0; i < array.Length; i++)
Console.WriteLine(array[i]);
Console.WriteLine();
// whileの省略形
int j = 0;
while (j < array.Length)
Console.WriteLine(array[j++]);
Console.WriteLine();
// foreachの省略形
foreach (int n in array)
Console.WriteLine(n);
}
}
}
どれも同じ概念で省略するのでまとめて記述しました。通常の記述と何が違うでしょうか?
{}がありません。
そうです。ルールを満たす場合は{}を省略していいのです。そして、ルールとは{}内の処理が1行の場合のみです。
ここで注意があります。この1行とは見た目的な意味じゃなくプログラム的な1行です。
しっかり覚えてる人は理解してると思いますが、要は;(セミコロン)までのことです。
なので次のような記述は駄目です。
if (i % 2 == 0)
Console.WriteLine(i); Console.WriteLine(array[i]);
省略形を使う判断
省略できるからと言って何でも省略形を使うのは適切ではありません。先程の例で言うならwhileは逆に見づらくなってます。
最初のifを含むforも次のように省略できるんですが、これを見てどう思いますか?
for (int i = 0; i < array.Length; i++)
if (i % 2 == 0)
Console.WriteLine(array[i]);
else
Console.WriteLine(i);
僕は可読性が悪化したように感じます。このように省略 = 正解ではないです。
個人的にforやforeachは中身がテキスト的にも1行で書けないなら{}付けるかな。
頻繁に使う省略形とか知りたいです。
1番使うのはifでbreak, continue, returnを使うときだね。この場合は明確に1行しか無いから{}削ったほうが美しいよ。
for (int i = 0; i < array.Length; i++)
{
if (i % 2 == 0)
continue;
Console.WriteLine(array[i]);
}
ここではC#のJump(break, continue, return, goto)構文について学びましょう。ただし、goto構文だけは特殊なので別枠で解説します。Jump statement (ステートメント)その名前の通り別の位置にジャンプしたり処理を抜けるための構文です。実はこれ、すでに半分は学習済みです。では、順番に見てみましょう。break statement (ステートメント)switch文やfor文を抜けるために使いましたよね。...
あとがき
動作的に同じなので明確な正解はありません。好みの記述を使いましょう。
◆ C#に関する学習コンテンツ
この記事は参考になりましたか?
コメント