[英]Beginner Java - looping through an array
因此,該類應該在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;
}
}
您的max方法確實返回了最大數,但是您沒有對該數字做任何事情。
也許您希望打印出最大值?
System.out.println(max(numbers));
在您的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);
}
答對了...
您必須按照以下步驟打印號碼
System.out.println(max(numbers));
另外,您可以將其分配給一個int變量,然后對其進行處理:
int maxNumber = max(numbers);
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;
}
}
如果您要遍歷整個數組,則迭代本身可以正常工作。 您缺少數組的最后一個索引。 因此,它將不再將Array [on_last_index]與currentMax值進行比較。
要解決這個簡單的問題,您所需要做的就是更改while循環中的條件。
while(counter <= length-1) { ... }
因此,讓我嘗試向您解釋。 如果在其中創建跟隨元素數組:
numbers = new int[]{9, 2, 15, 2, 22, 10, 6};
那么數組中的每個值都有其自己的索引。 例如,如果您要獲取數組的第一個元素,那么您要做的就是獲取索引為0的數組的元素。0是因為它是您要選擇的第一個元素=>索引0是第一個數組中第一個元素的索引。 現在在您的示例中,您得到了一個大小為7 =>的數組,您在該數組中有7個元素。 但是還記得如何獲取數組的元素嗎? 對! 您可以通過它們的元素獲取元素。 第一個元素的索引為0,第二個元素的索引為...,。,最后一個6。6,因為我們從0開始,所以如果要迭代,則將一個數組拋出,然后總是從0到array.length-1。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.