|
分類:[C#]
開発環境:Visual C# 2005 Express Edition 8.0.50727.762 (SP.050727-7600)
Microsoft .NET Framework 2.0.50727
現在関数電卓のプログラムを作ってまして、そのうちの基礎となる四則演算の計算を行う関数において解決できなかった点があったので質問させてください。
以下のコードはその関数の一部です。文字列の引数として受け取ったequationを演算子ごとに分割して数値部分をdivideに、演算子部分をarithに格納しています。
これをコンパイルしてみたところ下のfor文の条件式において
「IndexOutOfRangeExceptionはハンドルされませんでした。 インデックスが配列の境界外です。」
と出てしまいます。エラーメッセージで調べてみたり思い当たることを色々と試してみたのですがC#を始めて2ヶ月足らずの私には見当がつきません。
ご教示いただけると幸いです。
----------------------------------------------------------------------
string[] divide;
string[] arith;
divide = new string[100];
arith = new string[99];
int j = 0;
int i;
for (i = 0; equation[i] != '\0'; i++)
{
if (equation[i] == '*' || equation[i] == '/' || equation[i] == '%' || equation[i] == '+' || equation[i] == '-')
{
divide[j] = equation.Substring(0, i);
arith[j] = equation[i].ToString();
equation = equation.Remove(0, i + 1);//divide[i]とarith[i]に代入した分を削除。
j++;
i = -1;
}
}
divide[j] = equation;
arith[j] = "";
----------------------------------------------------------------------
|