У меня возникли проблемы с пониманием программы, которую мне нужно написать для класса. Моя программа работает так, как должна, но проблема заключается в том, что она хочет, чтобы я не печатал в своих методах. Я смущен тем, как я должен выводить свои значения, потому что мои методы должны быть недействительными в соответствии с проблемой (которая ничего не возвращает), и я не могу распечатать их внутри.Как использовать метод void без печати?
Вот вопрос:
Разработка и реализация программы Java (назовите его ArrayMethods), который определяет 4 метода следующим образом:
INT arrayMax (INT [] массив)
Int arrayMin (INT [] массив)
недействительного arraySquared (INT [] массив)
недействительного arrayReverse (INT [] массив)
Протестируйте свои методы, создав массив длиной 5 в вашем основном методе и заполнив его случайными числами от 1 до 1000. Затем ваша программа должна отображать исходный массив, отображать наименьшее число в массиве, отображать наибольшее число в массив, отобразить почитаемый массив и отобразить квадрат каждого значения в массиве. Основной метод shoudl вызывается каждый метод ровно один раз, при этом каждый вызов использует исходный массив в качестве фактического параметра. Отсутствует печать внутри методов. Документируйте свой код и правильно организуйте/размещайте свои выходы. При необходимости используйте escape-символы и объекты форматирования.
Итак, снова мой вопрос: как использовать эти методы без печати, если я не могу вернуть значение? Если бы кто-нибудь мог дать мне понять, как это решить, мы будем очень благодарны.
import java.util.Random;
import java.util.Arrays;
public class ArrayMethods
{
public static void main (String[] args)
{
int[] array = new int[5];
array[0] = (int)(Math.random() * (1000 - 1)) + 1;
array[1] = (int)(Math.random() * (1000 - 1)) + 1;
array[2] = (int)(Math.random() * (1000 - 1)) + 1;
array[3] = (int)(Math.random() * (1000 - 1)) + 1;
array[4] = (int)(Math.random() * (1000 - 1)) + 1;
System.out.println("The values within the array are: " + Arrays.toString(array));
System.out.println("The maximum value within the array is: " + arrayMax(array));
System.out.println("The minimum value of the array is: " + arrayMin(array));
System.out.print("The values within the array (squared) are: ");
arraySquared(array);
System.out.print("\n");
System.out.print("The array reversed is: ");
arrayReverse(array);
}
public static int arrayMax (int[] array)
{
int max = 0;
for (int i = 0; i < array.length; i++)
{
if (array[i] > max)
{
max = array[i];
}
}
return max;
}
public static int arrayMin (int[] array)
{
int min = 1000;
for (int i = 0; i < array.length; i++)
{
if (array[i] < min)
{
min = array[i];
}
}
return min;
}
public static void arraySquared (int[] array)
{
int[] array2 = new int[5];
for (int i = 0; i < array.length; i++)
{
array2[i] = array[i] * array[i];
System.out.print(array2[i]);
while (i < array.length - 1)
{
System.out.print(", ");
break;
}
}
}
public static void arrayReverse (int[] array)
{
for(int i = array.length - 1; i >= 0; i--)
{
System.out.print(array[i] + " ");
}
}
}
Функции, которые они говорят вам написать обратные ints, а не void. ArraySquared и arrayReversed arent должны быть недействительными в соответствии с указаниями, которые вы указали. Так что да, вы должны возвращать ценности. – Carcigenicate
Исправить. Но посмотрите на два других метода внизу. Они недействительны. Я забыл добавить это к моему вопросу. – warriorpx
Следует отметить, что если функция не возвращает значение, ваша * только * другая опция предназначена для изменения глобального состояния (например, для печати). Мутирование глобального состояния вместо возврата значения должно быть сделано как можно реже! Не завершайте это задание и считайте, что возвращающиеся ценности - это плохая или редкая вещь! – Carcigenicate