条件分岐とは、変数などの比較等を行い、結果によって行う処理を変えることです。
最もよく使われる条件分岐がif/elseです。
if文の括弧の中に記述した比較を行った結果、条件を満たしていれば(trueといいます)、
ifの下に中括弧で囲んだ中の処理を行います。
条件を満たしていなければ(falseといいます)、elseの下に中括弧で囲んだ中の処理を
行います。
行いたい比較が複数ある場合はelse ifを使用しますが、elseを一番最後に記述する必
要があります。
例
if( x == 0 )
{
label1.Text ="xは0";
}
else if( x == 1 )
{
label1.Text ="xは1";
}
else
{
label1.Text ="xは0でも1でもない";
}
処理が一行で記述できる場合は中括弧を省略することも出来ますが、あまりお勧めはし
ません。
例
if( x == 0 )
label1.Text = "xは0";
x++;
なんとなくxが0のときだけxをインクリメントするように見えますが、実は問答無用で
インクリメントします。
中括弧を外すと、その下の1行だけを実行する為です。
中括弧を記述するなんてことは特に大変なものでもないし、視認性も上がります。
ifの条件には、当然論理条件演算子が使えます。
例
if (((c >= '0') && (c <= '9'))
|| ((c >= 'a') && (c <= 'z'))
|| ((c >= 'A') && (c <= 'Z')) )
{
label1.Text = "Cは英数字";
}
else
{
label1.Text = "Cは英数字以外";
}
char型の変数cが、英数字かを判断するコードです。
コードの視認性をあげる為に、0-9,a-z,A-Zの条件を括弧でくくっています。
なんでもかんでも括弧でくくることは勿論良くありませんが、見やすくするために条件
を括弧でくくったり、改行を行ったりすることはよいことです。
例えば、上記例の条件は括弧が無くても同じ動きをします。
if (c >= '0'&& c <= '9'|| c >= 'a' && c <= 'z'|| c >= 'A' &&c <= 'Z')
が、ぱっとみこれが何の条件なのか、分かりづらいでしょう。
C/C++経験者がif文を使う場合は、ifがbool型の評価しか行わないことに気をつけてく
ださい。
C#の真/偽は、0と!0ではありません。
つまり、0以外のとき真となるような記述は出来ません。
例
if( i & 0x80 )
{
label1.Text = "15Bit目は1です";
}
この例ではコンパイルエラーが発生します。
C#では明示的に演算結果が0以外かを調べる必要があります。
例
if( ( i & 0x80 ) != 0 )
{
label1.Text = "15Bit目は1です";
}
最終更新:2007年09月22日 13:11