1

5つの変数が変数10と50の間にあるかどうかを確認するループの作成に問題があります。正しいコーディングを設定したと思いますが、intをboolに変換できないというエラーが表示されます。これが私が現在持っているものです:

        string userName = "";
        int v1, v2, v3, v4, v5 = 0;
        float avg;
        float variance;

        Console.WriteLine("What is your name?");
        userName = Console.ReadLine();

        Console.WriteLine();

        int i = 1;

        while (i <= 5)
        {
            int InputCheck = 0;
            Console.WriteLine("Please input a number {0} between 10 and 50;", i);
            InputCheck = Convert.ToInt32(Console.ReadLine());

            if (InputCheck >= 10 && InputCheck <= 50) 
            {

                if (i >= 10 && i <= 50)
                    i++;
                if (i != 1)
                {
                    InputCheck = v1;
                }
                if (i != 2)
                {
                    InputCheck = v2;
                }

                if (i == 3)
                {
                    InputCheck = v3;
                }
                if (i == 4)
                {
                    InputCheck = v4;
                }
                if (i == 5)
                {
                    InputCheck = v5;
                }
                if (InputCheck < 10 || InputCheck > 50)
                {
                    Console.WriteLine("The number you entered is either to high or to low please re-enter a number:");
                }
            }

どんな助けでも大歓迎です。

4

1 に答える 1

1

100%確信はありませんが、エラーは次の行から発生していると思います。

Console.WriteLine("Please input a number {0} between 10 and 50;", i);

ブール値を期待するint'i 'を指定しています。多分これは役立つでしょう:http://msdn.microsoft.com/en-us/library/70x4wcx1.aspx?cs-save-lang = 1&cs-lang = vb#code-snippet-2

残りのコードについては:

  • Calamar888は正しいです。「i」に使用している最初のifステートメントは、trueと評価されることはありません。
  • また、後続のif(if(i!= 1)など)は複数回trueと評価され、すでに保存されている値を上書きします(i = 2、3、4、または5の場合はi!= 1)。
  • これらのifステートメント内では、'InputCheck'の値を変更しており、保存していません
  • プログラムを短くするために配列の使用を検討する必要があります
  • あなたのelse"if(InputCheck <10 || InputCheck> 50)"は最初のifの中にあるべきではありません、それは決して真ではありません

あなたが宣言すると仮定します:

int v[5]; /* creates array v[0], v[1], ... v[4] */
int i = 0;

while (i<=4){
 /* internal code */
}

このようなものが機能するはずです:

/* internal code */

    if (InputCheck >= 10 && InputCheck <= 50) 
        {
           v[i] = InputCheck;   
           i++;

        }
    else if (InputCheck < 10 || InputCheck > 50)
        {
           Console.WriteLine("The number you entered is either to high or to low please re-enter a number:");
        }
于 2013-02-18T19:51:32.933 に答える