Ошибка: индекс находился за пределами массива. [Дубликат]
На этот вопрос уже есть ответ здесь:
Что такое исключение 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."