Я хочу иметь возможность переключаться между «активным» объектом в массиве по его индексу. Для этого мне нужно иметь возможность «циклически» проходить через массив объектов с фиксированной длиной 3.
Когда активным объектом вызывается первый элемент и функция switchObject (), я хочу иметь возможность заменить активный объект вторым элементом в массиве. Это возможно?
Inventory inventory = new Inventory(); /* has getObject() */
internal Object activeObject;
public void switchObject()
{
switch (index)
{
/* If active object index is 0, switch active object index to index 1 */
case 0:
index = 1;
activeObject = inventory.getObject(index);
/* If active object index is 1, switch active object index to index 2 */
case 1:
index = 2;
activeObject = inventory.getObject(index);
/* If active object index is 2, switch active object index to index 0 */
case 2:
index = 0;
activeObject = inventory.getObject(index);
}
}
Желательным поведением будет циклический массив, например (где -> переключатель ()) элемент 1 -> элемент 2 -> элемент 3 -> элемент 1 -> элемент 2 -> элемент 3 -> элемент 1 ....
Этот код выдает ошибки в VS2017, так как "управление не может быть пропущено из одной метки регистра ('case;')
Кроме того, есть ли способ, которым я могу использовать исключения (возможно, пользовательское исключение?), Чтобы проверить, есть ли на самом деле три объекта, доступных для переключения между ними?
Спасибо!
Есть ли способ заставить это работать?