1

この for ループを反復処理し、ユーザーから配列に int を入力しようとしています。エラーが発生し、理由がわかりません..

error: エラー 1 割り当てられていないローカル変数 'array' の使用

using System;

namespace Lab16
{
class Program
{
    static void Main(string[] args)
    {
        int[] array;
        int value;

        Console.Write("How big of an Array? ");
        int arraySize = int.Parse(Console.ReadLine());

        for (int i = 0; i <= arraySize; i++)
        {
            Console.Write("First Value: ");
            value = int.Parse(Console.ReadLine());
       -->  array[i] = Convert.ToInt32(value);

        }
    }
}
}
4

4 に答える 4

7

配列変数が初期化されていません。これを書くと修正されるはずです:

int[] array = new int[arraySize];

(もちろん、これはコンソールからarraySizeを読み取った後に行う必要があります...)

int value;
Console.Write("How big of an Array? ");
int arraySize = int.Parse(Console.ReadLine());
int[] array = new int[arraySize];

そして、もう 1 つ問題があります。記述されている for ループが範囲外になります。次のようにする必要があります。

for (int i = 0; i < arraySize; i++)
于 2012-07-03T02:16:20.440 に答える
2

C# のローカル変数initializedは暗黙的に割り当てられません。このコード スニペットでは、配列を作成する必要があります。

 int[] array=new int[arraySize];
于 2012-07-03T02:16:35.080 に答える
1

配列の大きさがわかったら、配列を初期化する必要があります。

to から iterate する必要もあるので、0toarraySize-1に変更<=しました<:

    Console.Write("How big of an Array? ");
    int arraySize = int.Parse(Console.ReadLine());
    int[] array = new int[arraySize];
    for (int i = 0; i < arraySize; i++)
    {
        Console.Write("Value: ");
        int value = int.Parse(Console.ReadLine());
        array[i] = Convert.ToInt32(value);
    }

ユーザーが長さを入力すると、配列を長さ 10 に初期化し、 10 個の個別の要素である に要素に10アクセスできます。09

于 2012-07-03T02:18:13.340 に答える
0

配列を初期化する必要がありますが、必要なサイズを知る前に宣言します。

using System; 


namespace Lab16 
{ 
class Program 
{ 
    static void Main(string[] args) 
    { 
        int arraySize; 
        int arrayValue;

        Console.WriteLine("How big of an Array? "); 

        while(!int.TryParse(Console.ReadLine(), out arraySize))
        { 
            Console.WriteLine("How big of an Array? ");
        }

        int[] array = new int[arraySize]; 
        for (int i = 0; i < arraySize; i++) 
        { 
            Console.WriteLine(string.Format("Value of element {0}: ", i));
            while(!int.TryParse(Console.ReadLine(), out arrayValue))
                 Console.WriteLine(string.Format("Value of element {0}: ", i));
            array[i] = arrayValue;
        } 
    } 
} 
}
于 2012-07-03T02:24:38.060 に答える