Итак, я пытался написать несколько тестовых примеров для проекта Java, который я делаю, и решил, что хочу переместить их в собственную функцию и выбирать между ними, используя параметр тестовой функции, вместо того, чтобы просто комментировать и раскомментировать код, как я сейчас делаю. Однако я попал в ловушку: рассматриваемый код включает в себя инициализацию переменных массива, и если я попытаюсь инициализировать их внутри оператора if-else, то другие фрагменты кода позже не смогут их увидеть из-за области видимости. проблемы. Кроме того, в Java массивы имеют фиксированный размер, и в некоторых тестовых примерах используются массивы разных размеров (включая пустые массивы), поэтому простое создание массива перед работой не работает.
Вот код, который я уже пробовал (с arrayGen, являющейся функцией, которая создает целочисленный массив из n элементов, с псевдослучайными значениями, которые лежат между нижней и верхней границами включительно). Обратите внимание, что для того, чтобы изменить какой тестовый пример я запускаю, мне нужно закомментировать текущий тестовый случай и раскомментировать тестовый пример, который я хочу запустить; Я хотел бы заменить это рядом операторов if-else if-else, если это возможно.
System.out.println("Unsorted:");
int[] unsorted = arrayGen(n,lower,upper);
//sorted array:
//int[] unsorted = new int[n];
//for (int i=0;i<n;i++)
//{
// if (lower+i<upper)
// {
// unsorted[i]=lower+i;
// }
// else unsorted[i]=upper;
//}
//reverse sorted array:
//int[] unsorted = new int[n];
//for (int i=0;i<n;i++)
//{
// if (upper-i>lower)
// {
// unsorted[i]=upper-i;
// }
// else unsorted[i]=lower;
//}
//array of static numbers:
//int[] unsorted = arrayGen(n,upper,upper);
//empty array:
//int[] unsorted = arrayGen(0,lower,upper);
Можно ли как-то это исправить и получить более точную версию моего кода, или мне придется застрять с простым комментированием и раскомментированием тестовых примеров, которые я хочу использовать?