Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/396.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在不打印的情况下使用void方法?_Java_Methods_Printing_Return_Void - Fatal编程技术网

Java 如何在不打印的情况下使用void方法?

Java 如何在不打印的情况下使用void方法?,java,methods,printing,return,void,Java,Methods,Printing,Return,Void,我在理解我需要为课堂编写的程序时遇到问题。我的程序正常工作,但问题是它希望我不要在我的方法中打印。我对应该如何输出我的值感到困惑,因为根据问题,我的方法必须是无效的(不会返回任何内容),并且我不能在它们内部打印 问题是: 设计并实现一个java程序(命名为ArrayMethods),该程序定义了以下4种方法: int数组最大值(int[]数组) int arrayMin(int[]数组) void arraySquared(int[]数组) void arrayReverse(int[]数组)

我在理解我需要为课堂编写的程序时遇到问题。我的程序正常工作,但问题是它希望我不要在我的方法中打印。我对应该如何输出我的值感到困惑,因为根据问题,我的方法必须是无效的(不会返回任何内容),并且我不能在它们内部打印

问题是:

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

int数组最大值(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] + " ");
        }

   }
}
import java.util.Random;
导入java.util.array;
公共类数组方法
{
公共静态void main(字符串[]args)
{
int[]数组=新的int[5];
数组[0]=(int)(Math.random()*(1000-1))+1;
数组[1]=(int)(Math.random()*(1000-1))+1;
数组[2]=(int)(Math.random()*(1000-1))+1;
数组[3]=(int)(Math.random()*(1000-1))+1;
数组[4]=(int)(Math.random()*(1000-1))+1;
System.out.println(“数组中的值是:“+Arrays.toString(数组));
System.out.println(“数组中的最大值为:“+arrayMax(数组));
System.out.println(“数组的最小值为:“+arrayMin(数组));
System.out.print(“数组(平方)中的值为:”;
阵列方形(阵列);
系统输出打印(“\n”);
System.out.print(“数组反转为:”);
阵列反转(阵列);
}
公共静态int-arrayMax(int[]数组)
{
int max=0;
for(int i=0;imax)
{
max=数组[i];
}
}
返回最大值;
}
公共静态int-arrayMin(int[]数组)
{
int最小值=1000;
for(int i=0;i=0;i--)
{
System.out.print(数组[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
    }

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

对于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
    }

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

他们告诉您要编写返回int而不是void的函数。根据您发布的说明,阵列方形和阵列反转不应该是无效的。所以,是的,您应该返回值。正确。但看看底部的另外两种方法。它们是空的。我忘了在我的问题中添加这一点。应该注意的是,如果函数不返回值,那么您唯一的其他选择就是修改全局状态(例如打印)。应该尽可能少地改变全局状态而不是返回值!不要完成此任务,并认为返回值是一件糟糕或罕见的事情!谢谢你,Carcigenicate!NP自从我开始函数式编程lol以来,我个人就不喜欢void方法,所以我不得不在那里唠叨了一会儿。他们要你写的函数是返回int,而不是void。根据您发布的说明,阵列方形和阵列反转不应该是无效的。所以,是的,您应该返回值。正确。但看看底部的另外两种方法。它们是空的。我忘了在我的问题中添加这一点。应该注意的是,如果函数不返回值,那么您唯一的其他选择就是修改全局状态(例如打印)。应该尽可能少地改变全局状态而不是返回值!不要完成此任务,并认为返回值是一件糟糕或罕见的事情!谢谢你,Carcigenicate!NP自从我开始函数式编程lol以来,我个人就不喜欢void方法,所以我不得不在那里咆哮了一会儿。