Как найти причину исключения «вне диапазона»? - PullRequest
3 голосов
/ 20 февраля 2012

Я пытаюсь сохранить десять значений в массиве с C #.Если я использую только однозначные числа, все идет гладко.Однако каждый раз, когда я даю числа с двумя или более цифрами, я получаю сообщение о том, что оно выходит за пределы индекса массива.Я подозреваю, что он хранит каждую цифру отдельно, например, если 10 - это первое число, которое я ввожу, он будет хранить 1 в первой позиции и 0 во второй.Однако я не уверен.Это проблема здесь или это что-то еще?Как я могу это исправить?

(с использованием Microsoft Visual Studio 2010 Ultimate)

код:

double[] userValues = new double[10];

for (int i=0; i < userValues.Length; i++) {
    Console.Write("Enter a value: ");
    userValues[i] = Convert.ToDouble(Console.ReadLine());
}

пример ошибок, которые я получаю:

Enter a value: 10
Enter a value: 10
Enter a value: 10
Enter a value: 10
Enter a value: 10
Enter a value: 10
Enter a value: 10
Enter a value: 10
Enter a value: 10
Enter a value: 10

Unhandled Exception: System.IndexOutOfRangeException: Index was outside the bounds of the array.
   at Assignment1.Program.Main(String[] args) in I:\CS2350\Assignment1\Assignment1\Program.cs:line 21
Press any key to continue . . .

Ответы [ 2 ]

1 голос
/ 20 февраля 2012

Исключительное сообщение сообщает, что ошибка произошла в строке 21 в Program.cs.Вам нужно найти эту строку кода и просмотреть ее.Например, вы можете открыть этот файл кода в Visual Studio, нажать Ctrl-G и ввести в диалоговом окне 21.

Возможно, в этой строке используется другой массив, но значение индексаэта строка находится за пределами массива (меньше 0 или больше 9).Узнайте, почему и исправьте.

Надеюсь, это поможет.

0 голосов
/ 20 февраля 2012

В этом коде нет ничего плохого, если вы пытаетесь делать то, что говорите. Условия цикла в порядке. (int i = 0; i < userValues.Length-1; i++) будет работать только 9 раз. Это не то, что вы пытаетесь сделать. Когда я ссылаюсь на 9, он не попадает в цикл, так как не проходит условия, поэтому цикл будет выполняться с i = 0, 1, 2, 3 ... 8 и будет увеличивать i до 9 при выходе из итерации 8. поэтому не соответствует условиям цикла.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...