我读到了一个foreach循环,我试图找到数组中最大的元素,但它不像通常那样工作。我想知道区别是什么?
public void foreachloop()
{
int[] T = { 1, 2, 3, 4, 5, 6, 7 };
int x = T[0];
for (int element : T) {
if (T[element] > x) {
x = T[element];
}
}
System.out.println(x);
}
答案 0 :(得分:2)
执行for (int element: T)
后,变量element
会遍历T
中的每个值。因此,您不应该尝试查看值T[element]
- 仅element
本身。
像这样:
for (int element: T) {
if (element > x) x = element;
}
如果在T[element]
为7时尝试访问element
,则会引发异常,因为7不是数组的有效索引。 (有效索引为0到6。)
答案 1 :(得分:2)
max
初始化为可能的最小整数max
,如果是,则使新值max
max
我个人会为此创建一个单独的方法:
import java.util.Arrays;
class Main {
public static void main(String[] args) {
int[] arr = new int[]{1,2,3};
System.out.println("The array looks like: " + Arrays.toString(arr)); //The array looks like: [1, 2, 3]
System.out.println("The max of the array is: " + arrayMax(arr)); //The max of the array is: 3
}
public static int arrayMax (int[] arr) {
int max = Integer.MIN_VALUE; //initilize max to the smallest integer possible
for(int element: arr)
max = Math.max(max, element);
return max;
}
}
试试here!
答案 2 :(得分:1)
当你使用foreach时,首先要定义数组的类型(这里是int
),然后给出一个任意名称(你选择element
),然后{{1}然后是数组的名称。之后,您可以使用您选择的名称访问元素。
: