基礎・文法 -文法のまとめ-

ホームC#プログラミング応用講義 > 文法のまとめ

目次

if

文法に関しては入門講座に書かれていることをマスターしておけば言うことはありません。この講義では補足的内容につ いてのみ説明します。

if 文においての単純なミスは等価演算子代入演算子を間違えることが最も多いです。初歩的なミスですが注意すべきです。
数学において「=」が代入とも等価ともとれる演算子として存在することが最も大きな原因です。

a = b
このプログラムでは a と b を同じ値にするのではなく、 a の中に b を入れるこ とを意味します。
a == b
これは a と b が同じかどうかを判別するだけであって、代入などの動作はしません。

if 文の条件文において = を使うことはありません。必ず == を利用します。

さらに、radioButton1.Checked などのように bool 型を返すプロパティに == true をつけるのも推奨されません。
if (radioButton1.Checked) のようにそのまま書くべきです。

if に関してその他は言うことはありません。

switch

switch 文はすべて if 文で書くことができます。よって、あまり乱用すべき文法ではありません。
また、if 文で書けることが switch 文ではかけない場合についてお話します。
if (x<5)
else if (x!=0) // x<5 かつ x!=0
コメントにもあるように2行目では x!=0 を条件としているだけでなく、x<5 もクリアしていなければなりません。
このように if - else if が利用され、それぞれの条件が単独で存在するのではなく、絡み合っている際には switch を使わず if を使うといいでしょう。

いずれにしても条件分岐を乱用することはあまり進められません。できるだけ簡潔に書くよう心がけましょう。

繰り返し

繰り返しは常にプログラムの実行に負担をかけます。ここでは悪い繰り返しの例についてお話します。
for (int i=0;i<=10;i++)
{
Dokugaku doku = new Dokugaku();
dokugaku.a = i;
Console.WriteLine(dokugaku.a);
}
このプログラムにおいて、for の中の1行目は何回繰り返そうと変わることのないステートメントです。それ以下は繰り返すことに意味がありますが、1行目は繰り返す必要はなく、むしろ あってはならないステートメントです。

このプログラムは以下のように書き換えるべきです。
Dokugaku doku = new Dokugaku();
for (int i=0;i<=10;i++)
{
doku.a = i;
Console.WriteLine(doku.a);
}
このようにするとオブジェクトの生成は1回で済みます。繰り返しはコンピュータを暴走させることもできる危険なプログラムです。利用するときはできるだけ 簡潔に書くようにしましょう。(もちろん、上のようなサンプルでは暴走しません。何万回も(時に永久的に)計算を繰り返す場合などです)

[ ステップアップC# ] [ C#プログラミング応用講義 ]