Index out of Range exception in C# bei der Iteration durch ein array

Habe ich diesen code verwende ich um ein Programm zu erstellen, dass dauert ein range-und Ausgänge der Konsole die Primzahlen. Ich habe ein problem, ich versuche eine Iteration durch das array, das ich gebaut habe, damit die Schleife sollte nur das schreiben in die Konsole die Werte, die Primzahlen sind mit meiner Methode den Rückgabewert. Das problem das ich habe ist, dass ich die zweite Bedingung festgelegt numArray.Length aber es scheint mir die Index out of Range Exception. Ich will einfach nur die Schleife Durchlaufen und alle Werte in der numArray und zu stoppen, wenn es fertig ist, herauszufinden, ob der Letzte Wert eine Primzahl ist oder nicht.

public struct Prime
{
    public int x;


    //constructor for Prime
    public Prime(int x1)
    {
        x = x1;

    }

    public int IsPrime(int number)
    {
        int i;
        for (i = 2; i * i <= number; i++)
        {
            if (number % i == 0) return 0;
        }
        return 1;
    }
}

class Program
{
    static void Main(string[] args)
    {
        Console.WriteLine("Enter an Integer");
        int num1 = Convert.ToInt32(Console.ReadLine());
        Console.WriteLine("Enter a Second Integer of Greater Value");
    //   int num2 = 0;
        int num2 = Convert.ToInt32(Console.ReadLine());

    /*    if (num2temp > num1)
        {
            num2temp = num2;
        }
        else
        {
            Console.WriteLine("You Did Not Enter An Integer Greater Than the First Integer, Please Enter Your Integers Again.");
            Environment.Exit(0);
        }
    */    int index = 1;
        int[] numArray = new int[num2];
        for (int i = num1; i <= num2; i++)
        {
            numArray[index] = i;

            Console.WriteLine(" index: {0} assignment: {1}", index, i);
            index++;
            Console.WriteLine("index: {0}",index);
        }

        Console.WriteLine("value: {0}", numArray[40]);

    /*    Prime myprime = new Prime();

        if (myprime.IsPrime(numArray[12]) == 1)
        {
            Console.WriteLine("true");
        }
        else
        {
            Console.WriteLine("False");
        } */


        Prime myprime = new Prime();


       int value = 0;
        for (int y = 1; y <= num2; y++)
        {
            if (myprime.IsPrime(numArray[y]) == 1)
            {
                value = numArray[y];
                Console.Write("{0} \t", value);

            }

        } 
Korrektur die zweite Bedingung ist - y <= num2

InformationsquelleAutor thewrongadvice | 2013-06-10

Schreibe einen Kommentar