如何在java中遍历一维数组[重复]

问题描述 投票:0回答:2

我正在制作一个程序,它将提示用户输入多少年级。然后提示用户输入 0 到 100 之间的成绩并将它们存储在数组中。最后程序将遍历数组找到输入的最高成绩并将其显示给用户。

我遇到的问题是我不知道如何遍历数组来比较数组中的两个索引。

import java.util.*;

public class HighestGrade {

    public static void main(String[] args) {
        //Declare and Initialize Arrays and Scanner
        Scanner scan = new Scanner(System.in);
        
        int num = 0;
        int[] array1;
        int highestgrade = 0;
        
        
        //Prompt user on how many grades they want to enter
        System.out.print("How many grades do you want to enter: ");
        num = scan.nextInt();
        array1 = new int[num];
        
        for(int i = 0; i < array1.length; i++){
            System.out.print("Enter grade out of 100: ");
            array1[i] = scan.nextInt();
        }
        
        //Traverse the array to find the highest grade entered
        
        for (int i = 0; array1[0] < array1[i]; i++){
            System.out.print("Higher");
        }
        
        //Display the results to the user
        System.out.print("The highest grade is " + highestgrade + ".");
        
        //Close scanner
        scan.close();

    }
}
java arrays
2个回答
3
投票

要遍历数组,可以使用循环。 For 循环或 while 循环或 do while 循环。

要遍历数组并跟踪最高值,您可以维护一个变量,并在每次迭代后更新它(如果遇到大于该值的值)。

用代码说话..

int max = arr[0];

for ( int i = 0; i < arr.length; i++) {
   if (arr[i] > max)
      max = arr[i];
}

System.out.println("Largest is : "+max);

希望这有帮助..!!

您还可以使用递归来遍历数组。但不建议这样做,因为它会导致堆栈相关问题..

另一种无需遍历即可获得最高值的方法可以这样看..

第 1 步:按升序对数组进行排序

第2步:最高值将位于数组的末尾,将其用作最高值

在代码中..

Arrays.sort(arr); 
System.out.println("Highest Value is : "+arr[arr.length - 1]);

1
投票

要遍历数组,您需要像这样更改 for 循环:

for (int i = 0; i < array1.length; i++){
    // do something with array1[i]
}

实际上是您已经完成的填充操作。只需执行相同操作即可使用其值。但是还有另一种方法可以获取最高值,您可以使用 Arrays.sort:

Arrays.sort(array1); // sort values in ascending order.
System.out.println(array1[array1.length-1]); // get the element in the last position (the greatest)
© www.soinside.com 2019 - 2024. All rights reserved.