本記事は、Excel C# Script入門講座の1記事です。
while
条件により処理を繰り返したい場合、whileステートメントを使用します。
while は"while (条件式)"の形式で条件を指定します。条件式がtrueの間、処理が実行されます。 従って、通常は処理の中でwhile文の条件式がfalseになるようにしたり、 繰り返しを中断するような文を記述します。そうでないとwhile文は処理を永遠にし続けてしまうからです。
"while ( 条件式 )"は、2通りの記述方法があります。記述方法により処理内容が異なってきます。
while 文
以下のように、whileの位置を前にした場合、条件式を満たしているのかを判断してから 繰り返す処理を実行します。
while ( 条件式 ) { //繰り返す処理 }
なお、C# (C# Script)にuntilは存在しません。論理演算子 ! を用いて条件を否定の形にして下さい。
下記の例では、まず初期値として変数 i に 1 が代入しておき、次に i が11以下かどうかを評価し、セルに値を代入し、次に i の値を1つ加算し、 もう一度 i が11以下かどうかを評価し、セルに値を代入します。この処理を i が10以上になるまで繰り返します。
var i = 1; while ( i < 11 ) { Excel.Worksheets("Sheet1").Cells(i, 1).Value = i; i++; }
do while文
上記記述方法に対してwhileの位置を後ろにした場合、繰り返す処理を実行してから 条件式を満たしているか判断します。つまりどのような条件でも1回は繰り返す処理 を実行します。
do { //繰り返す処理 } while(条件式);
なお、この記述方法を用いる場合、while(条件式)の末尾に ; (セミコロン)が必要です。
下記の例では、まず初期値として変数 i に 10 が代入しておき、セルに値を代入し、次に i の値を1つ加算し、 i が11以下かどうかを評価します。つまりWhile 条件式を評価する前に処理を 1回実行しています。i の値は11なので 繰り返す処理を実行せずに終了します。
var i = 10; do { Excel.Worksheets("Sheet1").Cells(i, 1).Value = i; i++; } while(i < 11);