所以这个类应该打印出在main方法(又名22)下定义的数组中的最大数字,但是当我运行它时没有任何反应。我确定这是一个非常愚蠢的问题,但今天是我使用java的第一天,我已经花了一大笔时间试图解决这个问题。谢谢!
public class fun {
public static void main (String [] args) {
int[] numbers = new int[] {9, 2, 15, 2, 22, 10, 6};
max(numbers);
}
public static int max(int[] m) {
int length = m.length;
int counter = 1;
int currMax = m[0];
while (counter <= (length - 2)){
if (m[counter] > currMax){
currMax = m[counter];
}
counter = counter + 1;
}
return currMax;
}
}
答案 0 :(得分:3)
您的max方法确实返回了最大数字,但您没有对该数字做任何事情。
也许您希望打印出最大值?
System.out.println(max(numbers));
答案 1 :(得分:1)
在main方法中,从一个变量中获取max方法的返回值,然后将其打印出来
public static void main (String [] args) {
int[] numbers = new int[] {9, 2, 15, 2, 22, 10, 6};
int val = max(numbers);
System.out.println(val);
}
...宾果
答案 2 :(得分:0)
您必须打印出
中的数字System.out.println(max(numbers));
或者你可以将它分配给一个int变量,然后用它做一些事情:
int maxNumber = max(numbers);
答案 3 :(得分:0)
public class fun {
public static void main (String [] args) {
int[] numbers = new int[] {9, 2, 15, 2, 22, 10, 6};
int maxNum = max(numbers); //change this
System.out.println(maxNum);
}
public static int max(int[] m) {
int length = m.length;
int counter = 1;
int currMax = m[0];
while (counter <= (length - 1)){ //change this
if (m[counter] > currMax){
currMax = m[counter];
}
counter = counter + 1;
}
return currMax;
}
}
答案 4 :(得分:0)
如果您想通过整个数组,iterration本身可以正常工作。您缺少数组的最后一个索引。所以它不再将Array [on_last_index]与currentMax值进行比较。
要解决这个简单问题,您需要做的就是更改while循环中的条件。
while(counter <= length-1) { ... }
所以让我试着向你解释一下。如果在其中创建一个follow元素数组:
numbers = new int[]{9, 2, 15, 2, 22, 10, 6};
然后数组中的每个值都获得了它自己的索引。例如,如果你想获得数组的第一个元素,那么你所要做的就是在索引0 0上获取数组的元素,因为它是你想要选择的第一个元素=&gt; index 0是数组中第一个元素的第一个索引。现在在你的例子中你得到一个大小为7 =&gt;的数组。你的数组中有7个元素。但是请记住如何获取阵列的元素?对!你可以通过他们的indizes获得元素。第一个元素得到索引0,secound 1,...,最后6. 6因为我们从0开始,所以如果你想要iterrate抛出一个数组,那么总是从0到array.length-1。