none
コンパイラ エラー CS1525が表示される RRS feed

  • 質問

  • 以下のようにプログラムを書くと、コンパイラ エラー CS1525が表示される。

    具体的には、 「'/' は無効です。」と表示される。割り算をやりたいだけなのですが。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace ConsoleApplication2
    {
        class Program
        {
            static void Main(string[] args)
            {
              double u=1.1;
                double d=1/u;
                double N=3.0;

          double[] St;
                St = new double[5];
                double j;

                for(j=1.0;j<N;j++)
                {
                    var a = St[j - 1];
                    a*u/d;

                }
    }
        }
    }

    コンパイルエラーの修正法をご教授ください。

    2011年2月2日 5:38

回答

  • 数点問題がありそうな箇所があるようです。

     

    1)St[j - 1]

    jはdouble型です。配列の番号としてはint型を指定すべきです。

     

    2)a*u/d;

    この計算結果を代入する変数が何も指定されていません。

    今回のエラーの直接的な原因と思います。

    例えば、var aa = a*u/d; とします。

     

    あと気になる点としては、forのループの回数はN=3.0で定義し、

    ループ対象の配列の要素数は固定で5と定義してますが、

    配列数分の繰り返し処理をしたいのであれば、foreachを配列に対して

    行うか、Stの初期化要素数に変数Nを使うべきのように思います。

     

    実際どういった処理をしたいのか不明なので以下適当ですが、

    こういった感じを参考にしてみてください。

    class Program
    {
    	private const int ST_COUNT = 3;
    	static void Main(string[] args)
    	{
    		double u=1.1;
    		double d=1/u;
    		double[] St = new double[ST_COUNT];
    		foreach (double i in St)
    		{
    			double calc = (i * u) / d;
    		}
    	}
    }
    

    • 回答としてマーク 山本春海 2011年2月28日 7:36
    2011年2月2日 5:51