第1章 第5節 モノを作るには部品から


← 前に戻る | 次に進む →

モノを作るには部品が必要です。そして、その部品にもいろいろな大きさや形、組み合わせるのに必要な条件などがあります。もちろん、プログラムを作るのにも相応の部品が必要であり、それらの一部として演算子やステートメントがあります。ここでは、それらについて解説していくことにします。

まず、以下に示したプログラムソースをご覧ください。

List 1.6 演算子を使った例

using System;

class Example
{
  static void Main() {
    int    整数 = 8;             // 整数.
    double 実数 = 12.5;          // 実数.
    Console.WriteLine("整数 {0}, 実数 {1}", 整数, 実数);
    整数 = 整数 * 整数 / 2;      // 整数の演算の例.
    実数 = 実数 * 実数 - 実数 * 2.0 + 実数;  // 実数の演算の例.
    Console.WriteLine("整数 {0}, 実数 {1}", 整数, 実数);

    string 文字列 = "文字列を";  // 文字列.
    byte バイト列 = 0x08;        // バイト列.
    Console.WriteLine("バイト列 {0}, 文字列 {1}", バイト列, 文字列);
    文字列 += "連結します。";    // 文字列の連結.
    バイト列 >>= 2;              // バイト列を右に2ビットシフトする.
    Console.WriteLine("バイト列 {0}, 文字列 {1}", バイト列, 文字列);
  }
}


整数 8, 実数 12.5
整数 32, 実数 143.75
バイト列 8, 文字列 文字列を
バイト列 2, 文字列 文字列を連結します。

ここで示したプログラムでは、いくつかの演算子を使用しています。これらは、それほど難しいものではありません。文字列の扱いやUNICODEによる漢字の使用など、些細な違いはありますが、CやC++とほとんど同じように使うことができます。

また、CやC++のように、C#の演算子にも優先順位がつけられています。例えば掛け算(*)は、足し算(+)よりも優先順位が高くなります。よって、1 + 2 * 3の結果は9ではなく、7になるのです。

日本語を使おう

C#では、UNICODEを使用してプログラムコードが書けます。つまり、アルファベットや数字だけではなく、ひらがなや漢字などの日本語も使用できるのです。これは、日本、韓国、中国など、いわゆるワイド文字を使用する人々にとっては大変便利です。

ここの講座でも日本語の変数などを使用していますが、理解を助けるのに一役買っているのでないでしょうか。

以下に、C#に出てくるすべての演算子を優先順位が高い順に示しておきます

カテゴリ 演算子
基本 (x) x.y f(x) a[x] x++ x-- new typeof sizeof checked unchecked
単項 + - ! ‾ ++x --x (T)x
乗除算 * / %
加減算 + -
シフト << >>
関係 < > <= >= is
等値 == !=
ビットごとの論理積 &
ビットごとの排他的論理和 ^
ビットごとの論理和 |
論理積 &&
論理和 ||
条件式 ?:
代入 = *= /= %= += -= <<= >>= &= ^= |=

さて、次にこれらの演算子を活用するためにステートメントについて説明します。

まずは、以下のプログラムを見てください。

List 1.7 ステートメントの基本を使った例

using System;

class Example
{
  static void Main() {
    bool 真偽値 = true;
    string[] 文字列配列 = new string[10];

    // forステートメント.
    for (int i = 0; i < 10; i++) {
      Console.Write("for - {0}, ", i);
      文字列配列[i] = (i * i).ToString();  // 整数を文字列にして代入.

      // ifステートメント.
      if (真偽値) { Console.Write("if - 真, ");  真偽値 = false; }
      else        { Console.Write("if - 偽, ");  真偽値 = true; }

      // switchステートメント.
      switch (i % 3) {
      case 0:  Console.Write("switch - 0, ");  break;
      case 1:  Console.Write("switch - 1, ");  break;
      case 2:  Console.Write("switch - 2, ");  break;
      }

      // whileステートメント.
      while (真偽値) {
        Console.Write("while - 真");
        break;
      }
      Console.WriteLine();
    }

    // foreachステートメント.
    Console.Write("foreach -");
    foreach (string 文字列 in 文字列配列)
      Console.Write(" {0}", 文字列);
  }
}


for - 0, if - 真, switch - 0,
for - 1, if - 偽, switch - 1, while - 真
for - 2, if - 真, switch - 2,
for - 3, if - 偽, switch - 0, while - 真
for - 4, if - 真, switch - 1,
for - 5, if - 偽, switch - 2, while - 真
for - 6, if - 真, switch - 0,
for - 7, if - 偽, switch - 1, while - 真
for - 8, if - 真, switch - 2,
for - 9, if - 偽, switch - 0, while - 真
foreach - 0 1 4 9 16 25 36 49 64 81

ここでは、いくつかのステートメントが出てきています。ほとんどのステートメントはCやC++と同じように使用できますが、一部新しいステートメントも出てきています。

forステートメントやwhileステートメントは、繰り返しの動作に用います。どちらも真の状態のときにブロック内の式を実行します。switchステートメントは式を場合にわけて実行します。foreachステートメントでは、配列内のデータごとに式を実行します。

上記で示したプログラムコードが理解できれば、それぞれのステートメントの意味を把握することはそれほど難しいことではないでしょう。

取り敢えずここまでのことが理解できれば、C#で書かれたプログラムの流れを掴むことができるようになっているはずです。


← 前に戻る | 次に進む →


Copyright (C) Noriyuki Futatsugi/Foota Software, Japan.
All rights reserved.
d2VibWFzdGVyQGZ1dGF0c3VnaS5uZXQ=