省略形の記述を覚えよう!

[C#] 省略形の記述を覚えよう!

※ 当サイトは広告を含みます。

ここでは覚えた構文を省略形で記述する方法を学びましょう。
簡易記述が可能な構文があるって話なので気楽に聞いてください。

省略が可能な構文

省略が可能なのはif, for, while, foreachの4つです。

では、実際にサンプルコードで省略形を見てみましょう。


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#に関する学習コンテンツ

この記事は参考になりましたか?

関連記事

コメント

この記事へのコメントはありません。