如何在java中遍历一维数组

时间:2017-10-18 13:05:51

标签: java arrays

这是我在这个网站上的第一个问题。

无论如何,我正在制作一个程序,提示用户输入多少等级。然后提示用户输入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();

    }
}

2 个答案:

答案 0 :(得分:3)

要遍历数组,您可以使用循环。对于循环或while循环或执行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);

希望这会有所帮助.. !!

您还可以使用Recursion遍历数组。但不建议这样做会导致与堆栈相关的问题。

在没有遍历的情况下获得最高价值的另一种方法可以看作是这样的..

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

步骤2:最高值将在数组末尾,将其用作最高值

代码..

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

答案 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)