Tablica o wielkości podanej zmienną

Tablica o wielkości podanej zmienną
GU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 13
0
Kopiuj
 using System;
public class Program {
    public static int[] Puzzle(int n) {       
int[] tab;
tab = new int[n];
for (int i=0;i<=n;i++) 
        {
             tab[i]=i;
        }

     return tab;
    }
}

Taki kod mam i nie mogę pojąć dlaczego nie ustawia mi odpowiednio rozmiaru tablicy.
(Generalnie zadanie z codehunta)
W chwili gdy n = 1 dostaje błąd Index out of range exception

  • Rejestracja: dni
  • Ostatnio: dni
0

Nie powinno być czasem tak:

Kopiuj
using System;
public class Program
{
    public static int[] Puzzle(int n)
    {       
    int[] tab;
    tab = new int[n];
    for (int i=0;i<n;i++) 
        {
             tab[i]=i;
        }
 
        return tab;
    }
}
VarrComodoo
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Bk
  • Postów: 480
4

jezeli ustawiasz rozmiar tablicy na 1 to w tablicy jest tylko jeden element, a odwolac sie do niego mozesz przez index 0.

Kopiuj
 
int[] tab = new int[1];
tab[0] = 9;

a w twojej petli jest tak ze dla tablicy o rozmiarze 1 probujesz odwolac sie do elementu o indexie [1] ktorego twoja tablica nie ma :) i dlatego jest out of range exception.

ps. bezpiecznie jest ustawiac warunek w petli for odwolując sie do rozmiaru tablicy np:

Kopiuj
 for (int i=0;i<tablica.Length;i++)
{
//...
} 

albo dla kolekcji generycznych

Kopiuj
for (int i=0;i<lista.Count;i++)
{
//...
} 

Zawsze, w każdej tablicy, liscie lub jakiejs innej kolekcji o rozmiarze n, jej pierwszy element jest pod indexem 0 a ostatni pod indexem n-1.

  • Rejestracja: dni
  • Ostatnio: dni
0

@Varran i czego powtarzasz jak już napisałem odpowiedź?

GU
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 13
0

Macie racje szukałem nie w tym miejscu co trzeba - dzięki wielkie za pomoc ;)

  • Rejestracja: dni
  • Ostatnio: dni
0

Moja odpowiedź wymagała, żeby pomyśleć.

@Varran dał gotowca.

@Sopelek @ne0

  • Rejestracja: dni
  • Ostatnio: dni
0

@ne0

Autor sam wybierze wartościowszą odpowiedź i ją doceni.

Czyli gotowca.

somekind
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Wrocław
0

Droga Czarna Pało - Ty też dałeś gotowca.

A @Varran dał kod ładniejszy i wydajniejszy (przynajmniej druga wstawka w jego poście, bo trzecia jest bez sensu).

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.