Чтобы исключить исключение из строя индекса массива, следует использовать инструкцию расширенного for, где и когда они могут.
Основная мотивация (и прецедент) - это когда вы итерации, и вам не требуются сложные шаги итерации. Вы не сможете использовать расширенный for для перемещения назад в массиве или только для итерации по каждому другому элементу.
У вас гарантировано, что вы не будете исчерпывать элементы для повторения при выполнении этого , и ваш [исправленный] пример легко преобразуется.
Код ниже:
String[] name = {"tom", "dick", "harry"};
for(int i = 0; i< name.length; i++) {
System.out.print(name[i] + "\n");
}
... эквивалентен этому:
String[] name = {"tom", "dick", "harry"};
for(String firstName : name) {
System.out.println(firstName + "\n");
}