gpt4 book ai didi

java - 如何使用 void 方法而不打印?

转载 作者:太空宇宙 更新时间:2023-11-04 12:08:10 25 4
gpt4 key购买 nike

我在理解需要为类编写的程序时遇到问题。我的程序按其应有的方式工作,但问题表明它希望我不要在我的方法中打印。我对如何输出我的值感到困惑,因为根据问题,我的方法必须为空(不返回任何内容),并且我无法在其中打印。

问题是:

设计并实现一个java程序(命名为ArrayMethods),定义4个方法如下:

int arrayMax(int[]数组)

int arrayMin(int[]数组)

void arraySquared(int[]数组)

void arrayReverse(int[]数组)

通过在主方法中创建长度为 5 的数组并用 1 到 1000 之间的随机数填充它来测试您的方法。然后您的程序应显示原始数组、显示数组中的最小数字、显示数组中的最大数字、显示受尊重的数组,并显示数组中每个值的平方。主方法应该只调用每个方法一次,每次调用都使用原始数组作为实际参数。 方法内没有打印。记录您的代码,并正确组织/间隔您的输出。如果适用,请使用转义字符和格式化对象。

所以我的问题又是:如果无法返回值,如何使用这些方法而不打印任何内容?如果有人能给我有关如何解决这个问题的线索,我将不胜感激。

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] + " ");
}

}
}

最佳答案

对于 void 函数,在 C# 中,您只需使用“out”或“ref”关键字即可。如果他们坚持使用 Java,Java 没有等效的,但你可以用对象做类似的事情。

public class PassArray
{
public int[] array;

public PassArray(int[] array)
{
this.array = array;
}
}

public static void Reverse(PassArray arrayHolder)
{
int[] reversed = new int[arrayHolder.array.Length];

int j = 0;

for (int i = arrayHolder.array.Length - 1; i >= 0; i--)
{
reversed[j] = arrayHolder.array[i];
j++;
}

arrayHolder.array = reversed;
}

static void Main(string[] args)
{
int[] toReverse = new[] { 10, 30, 2, 1, 3, 100, 340 };

PassArray passedObject = new PassArray(toReverse);

Reverse(passedObject);
// passedObject.array will now have the reversed array
}

显然这可以改进,但它至少应该给出正确的想法。

关于java - 如何使用 void 方法而不打印?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40135645/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com