Я заметил при вводе целого числа в массив, который, если целое число больше длины массива, выдает исключение за пределы. Почему это? Почему массив не может принять целое значение? Как я могу исправить это, когда мне нужно хранить целые числа больше длины массива.Почему массивы не принимают ввод, превышающий их длину?
Спасибо!
Вот код. Когда я ввожу целое число больше 5, я получаю исключение за пределы. Если я ввожу целые числа менее 5, код работает отлично.
public class NumOfOccur
{
static Scanner input = new Scanner(System.in);
static int[] cards = new int[5];
static int[] numOccurence = new int[5];
public static void main(String[] args)
{
System.out.println("Enter five values: ");
for (int i = 0; i < 5; i++)
{
System.out.print("Card " + (i + 1) + " : ");
cards[i] = input.nextInt();
}
containsPair(cards);
}
public static boolean containsPair(int hand[])
{
for (int i = 0; i < hand.length; i++)
numOccurence[hand[i]]++;
for (int i = 1; i < numOccurence.length; i++)
{
if (numOccurence[i] > 0)
System.out.println("The number " + i + " occurs " + numOccurence[i] + " times.");
}
return false;
}
}
Это просто не соответствует действительности. Поместите некоторый код, который, по вашему мнению, демонстрирует проблему, чтобы мы могли видеть, что происходит на самом деле. Вы получаете только «OutOfBoundsException», если пытаетесь получить доступ к элементу за пределами длины массива, а не если сам элемент больше, чем 'array.length'. –
Неправильно. Похоже, вы передаете целое число как аргумент индекса массива (например, 'myArray [myInt]') вместо значения, которое нужно присвоить индексу ('myArray [0] = myInt'). –
вы уверены, что не делаете что-то вроде int [] i = new int [45]; i [50000] ..etc? – Alex