将数组元素传递给接受ints的方法(Java)
我试图创建一个数字数组,将它们传递给一个只接受int作为参数的静态方法,并将最大int返回给要打印的main(这些是家庭作业规范)。max方法本身可以工作,但我无法将我在main中输入的数组传递给函数,并返回max值。感谢您的帮助将数组元素传递给接受ints的方法(Java),java,arrays,int,typecasting-operator,Java,Arrays,Int,Typecasting Operator,我试图创建一个数字数组,将它们传递给一个只接受int作为参数的静态方法,并将最大int返回给要打印的main(这些是家庭作业规范)。max方法本身可以工作,但我无法将我在main中输入的数组传递给函数,并返回max值。感谢您的帮助 import java.util.Scanner; public class findMax { public static int max(int val1, int val2, int val3) { int[] intArray = n
import java.util.Scanner;
public class findMax {
public static int max(int val1, int val2, int val3) {
int[] intArray = new int[3];
val1 = intArray[0];
val2 = intArray[1];
val3 = intArray[2];
int max = Math.max(Math.max(val1, val2), val3);
System.out.println(max);
return max;
}
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int[] intArray = new int[3];
System.out.println("Enter 3 integers: ");
for (int i = 0; i < intArray.length; i++) {
intArray[i] = sc.nextInt();
}
StringBuilder sb = new StringBuilder();
for (int i = 0; i < intArray.length; i++) {
if (i > 0) {
sb.append(", ");
}
sb.append(intArray[i]);
}
System.out.println("Input values: " + sb.toString());
max(intArray[0], intArray[1], intArray[2]);
System.out.println(max(intArray[0], intArray[1], intArray[2]));
sc.close();
}
import java.util.Scanner;
公共类findMax{
公共静态int max(int val1、int val2、int val3){
int[]intArray=新的int[3];
val1=intArray[0];
val2=intArray[1];
val3=intArray[2];
int max=Math.max(Math.max(val1,val2,val3);
系统输出打印项次(最大值);
返回最大值;
}
公共静态void main(字符串[]args){
扫描仪sc=新的扫描仪(System.in);
int[]intArray=新的int[3];
System.out.println(“输入3个整数:”);
for(int i=0;i0){
某人加上(“,”);
}
某人追加(在列[i]);
}
System.out.println(“输入值:+sb.toString());
max(intArray[0],intArray[1],intArray[2]);
System.out.println(最大值(intArray[0]、intArray[1]、intArray[2]);
sc.close();
}
}您的
max
方法将其参数覆盖为零,因此不,它不能自己工作
public static int max(int val1, int val2, int val3) {
int[] intArray = new int[3]; // {0, 0, 0}
val1 = intArray[0]; // <-- val1 = 0
val2 = intArray[1]; // <-- val2 = 0
val3 = intArray[2]; // <-- val3 = 0
int max = Math.max(Math.max(val1, val2), val3);
System.out.println(max);
return max;
}
然后,您的main
方法应该按预期工作(但您不需要像那样调用max
两次,只需在打印时调用一次)
和您可能更喜欢数组.toString(intArray)
在当前的上进行循环
或者,您可以使max
可变(并且假设您使用的是Java8+,使用IntStream
)。像
可以称之为
System.out.println(max(intArray));
或
System.out.println(max(1, 2, 3, 4, 5));
我显然是想得太多了。非常感谢你的帮助。
public static int max(int... values) {
return IntStream.of(values).max().orElse(-1);
}
System.out.println(max(intArray));
System.out.println(max(1, 2, 3, 4, 5));