Member 12996155 Ответов: 2

Во всех программах, где я использую integer. persint error при выполнении, даже если программа не имеет ошибки, но cmd показывает это, я не знаю, что делать ?


класс SwitchDemo
{
public static void main(String args[])
{
int marks = Integer. parseInt(args[6]);
переключатель (метки/6)
{
корпус 1:
случай 2:
случай 3:
Системы.из.код println("отлично");
перерыв;

случай 4:
Системы.из.код println("добро");
перерыв;

корпус 5:
Системы.из.код println("тяжело работать");
перерыв;

корпус 6:
Системы.из.код println("бедный");

по умолчанию :
Системы.из.код println("недопустимое значение, введенное");
}
}
}

Что я уже пробовал:

Это он ошибся?




Исключение в потоке "основной" Java для.яз.ArrayIndexOutOfBoundsException: 6 в SwitchDemo. main(SwitchDemo. java:5)

NotPolitcallyCorrect

Очевидно, вы пытаетесь получить доступ к элементу массива, который не существует. Что вам нужно сделать, так это прекратить попытки получить доступ к элементу массива, который не существует, и ваша ошибка исчезнет.

2 Ответов

Рейтинг:
2

Richard MacCutchan

int marks = Integer.parseInt(args[6]);

Вы уверены, что есть ценность в args[6]? Вы должны использовать args.length свойство во-первых, чтобы проверить, сколько значений присутствует.


Рейтинг:
2

OriginalGriff

Ошибка довольно явная:

ArrayIndexOutOfBoundsException: 6 at SwitchDemo.main(SwitchDemo.java:5)
Итак, посмотрите на строку 5, и вы увидите:
int marks = Integer.parseInt(args[6]);
Приводили ли вы какие-либо аргументы, когда запускали приложение?
Вы предоставили семь аргументов (помните, что индексы массива java начинаются с нуля, а не с одного, поэтому шестой аргумент находится в индексе 5)?

Я настоятельно рекомендую вам проверить количество переданных аргументов и сообщить о проблеме Пользователю, если он не предоставил достаточно данных при запуске вашего приложения:
int argCount = args.length;
Скажу вам, сколько было пройдено.