ステートメント
ステートメントとは
{
public class Class1
{
public static int Main(string[] args)
{
int a=1;
{
int b=2;
Console.WriteLine(a);
Console.WriteLine(b);
}
Console.WriteLine(a);
// Console.WriteLine(b); // エラーになる
return 0;
}
}
}
ブロック・ステートメントを使用するサンプル・プログラム
11行目で宣言された変数bは、ブロック・ステートメントの中で宣言されているので
寿命はブロックの範囲内に限定される
超えると変数bは存在しなくなる
変数bを利用しようとするとコンパイル・エラーになる。
ブロックが終わった後で使いたい変数はブロックの外で宣言する必要がある。
分岐
条件によって実行するステートメント( 文 )を変える手段は2つある。
ifステートメントによる条件判断で、条件判断式が成立したときと
成立しないときで処理内容を分ける。
switchステートメントで、式の値によって処理を分ける。
if条件式に書かれたargs.Lengthは
コマンドライン引数に何個の値が指定されたかを示すプロパティ。
ifは、“args.Length != 0”つまりコマンドラインに何か書いてあれば11行目を実行し、
“{”と“}”はブロック・ステートメントである。
switchは、カッコ内の値と、続くcaseの後の値を比較し
一致したらcase以後のステートメントを実行する。
つまり、args.Lengthの値がゼロなら、
“case 0”が成立して実行される。
caseは何個でも書くことができるが、
合致しない場合は“default:”が実行される。
switchステートメントの中で使用されるbreakは
処理を終了してswitchステートメントから抜け出す機能を持ったキーワードである。
breakが出現すると、そこで処理は打ち切られて
switchステートメントの次のステートメントが実行される。
POINT
処理を終了させるのではなく、別のcaseの条件処理にジャンプさせたい場合がある。
そのような場合は、breakの代わりに“goto case”という構文を使う。
args.Lengthが1のとき、30〜31行目が実行されるが
“goto case 2”によって、“case 2”へ制御が移り実行される。
“goto defalt”はdefaultへ制御を移す機能を持っていて
やっとswitchステートメントから脱出することになる。
ここで、C/C++プログラマは注意して欲しいのだが
POINT: C# switch Statement は String を使うことができる
“args[0]”は、コマンドラインの引数に指定された最初の文字列を示す