FOUT: index was buiten de grenzen van de array. [DUPLICEER]

Ik ben me bewust van wat het probleem is vermeld, maar ik ben in de war voor hoe mijn programma een waarde uitvoert die buiten de array staat.

Ik heb een scala aan inten die 0 – 8 is, wat betekent dat het 9 inten kan bevatten, correct?
Ik heb een int die wordt gecontroleerd om ervoor te zorgen dat de ingangswaarde van de gebruikers 1-9 is. Ik verwijder er een uit het gehele getal (zoals SO)

if (posStatus[intUsersInput-1] == 0) //if pos is empty
{
    posStatus[intUsersInput-1] += 1; 
}//set it to 1

Dan invoer ik mezelf en ik krijg de fout. Het moet toegang krijgen tot de laatste int in de array, dus ik zie niet waarom ik een foutmelding krijg.
Relevante code:

public int[] posStatus;       
public UsersInput()    
{    
    this.posStatus = new int[8];    
}
int intUsersInput = 0; //this gets try parsed + validated that it's 1-9    
if (posStatus[intUsersInput-1] == 0) //if i input 9 it should go to 8?    
{    
    posStatus[intUsersInput-1] += 1; //set it to 1    
} 

FOUT:

"Index was outside the bounds of the array." "Index was outside the bounds of the array."

Antwoord 1, Autoriteit 100%

U hebt een array aangegeven die 8 elementen niet 9.

kan opslaan

this.posStatus = new int[8]; 

Het betekent dat PostStatus 8 elementen van index 0 tot 7 bevat.


Antwoord 2, Autoriteit 25%

public int[] posStatus;       
public UsersInput()    
{    
    //It means postStatus will contain 9 elements from index 0 to 8. 
    this.posStatus = new int[9];   
}
int intUsersInput = 0;   
if (posStatus[intUsersInput-1] == 0) //if i input 9, it should go to 8?    
{    
    posStatus[intUsersInput-1] += 1; //set it to 1    
} 

Antwoord 3, Autoriteit 8%

// Als ik 9 ingang, moet het naar 8?

U moet nog steeds met de elementen van de array werken. U telt 8 elementen wanneer u door de array loopt, maar ze worden nog steeds array (0) – array (7).

Other episodes