黙々とC#

"In a mad world of VBA, only the mad are sane" 『VBAという名の狂った世界で狂っているというのなら私の気は確かだ』


while

本記事は、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);