Ошибка: индекс находился за пределами массива. [Дубликат]

На этот вопрос уже есть ответ здесь:

Что такое исключение IndexOutOfRangeException / ArgumentOutOfRangeException и как его исправить? 4 ответа

Я знаю, о чем говорит проблема, но я не понимаю, как моя программа выводит значение, которое находится за пределами массива.

У меня есть массив целых чисел от 0 до 8, что означает, что он может содержать 9 целых, правильно? У меня есть int, который проверяется, чтобы убедиться, что пользователь вводит значение 1-9. Я удаляю один из целого числа (вроде так)

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

затем я сам ввожу 9 и получаю ошибку. Он должен получить доступ к последнему int в массиве, поэтому я не понимаю, почему я получаю ошибку. Соответствующий код:

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    
} 

Ошибка:

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

Ответы на вопрос(3)

Ваш ответ на вопрос