3

forステートメントを繰り返して、iから数を増やしようとしてい0 to 100ます。

これが画面に表示されます。

私の問題は、メソッド(Mainではなく)で何を返したいのかを完全には理解していませんが、何かを返す必要がある場合です。

intを返したくありません。値を返さない関数を実行したいので、返す文字列がないと思います。メソッドタイプをめちゃくちゃにしていると思います。

メソッドでifステートメントを実行し、パラメーターが一致する場合は結果を画面に表示します。そうでない場合は、下に移動してforステートメントからやり直します。

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

    namespace Project5
    {
      class Program
      {
        int i = 0;


        static void Main(int i)
        {
            do
            {
                for (i = 0; i < 101; i++)
                {
                    Words(); 
                }
            } while (i < 101);

            Console.ReadLine();
        }

        static string Words (int i) //<---Here I think I am using the incorrect method type
        {//Which then screws up the method when it is called above. I have been going                
        //through method types but dont see anything that when called just perform a         
        //function and displays results.

            string f = "Word1";
            string b = "Word2";

            if (i == 3)
            {
                Console.Write(f);

                if (i == 5)
                {
                    Console.Write(b);

                    if (0 == (i % 3))
                    {
                        Console.Write(f);

                        if (0 == i % 5)
                        {
                            Console.Write(b);
                        }
                        else
                        {
                            Console.WriteLine(i);  
                        }
                    }

                }
            }

        }
    }
}
4

3 に答える 3

3

変化する

static string

static void

その後、何も返す必要はありません

また、doループは冗長であるため、おそらく削除する必要があります。forループは必要な処理を実行する必要があります(私は思います)。

于 2012-06-24T17:40:09.480 に答える
2

リターンタイプがないことは別voidとして、私が見る限り、いくつかの問題があります

  1. forループでiこのようなwordsメソッドに変数を渡す必要があります。Words(i);
  2. 彼らは同じことを達成しているので、while周りを削除します。for
  3. Wordsの論理が間違っています。i両方を3と5に等しくすることはできないため、最初の実行以外Console.WriteLine();は実行されません。代わりに、それらすべてが反復ごとにチェックされるように、それらをアンネストする必要があります。
于 2012-06-24T17:48:35.283 に答える
0

前述のように、メソッドのシグネチャをからstatic string Wordsに変更するstatic void Wordsと、メソッド内で何かを返す必要がなくなりますWordsvoidメソッドシグニチャのコンテキストで何も参照しないキーワードです。

Wordsまた、で呼び出すときに必要なパラメータを渡していないようですMain。私はWords();あなたの代わりにWords(i);

最後に、静的クラスメンバーとインスタンスメンバーの違いを調べたい場合があります。つまり、インスタンスメンバーは同じクラスの静的メンバーにアクセスできますが、静的メンバーはインスタンスメンバーにアクセスできません。クラスでインスタンス変数として宣言しただけでなく、両方の静的メソッドでローカル変数を作成したため、これを取り上げます。あなたの場合に起こるのは、インスタンスが実際に使用されることは決してないということです。代わりに、両方の静的メソッドが独自のローカル変数を使用します。ii ii

于 2012-06-24T17:46:17.277 に答える