我试图找到一个用户从一个一维数组输入的最大值,但我设置的函数不会显示一个值。我通常使用Visual Basic,做过有限的Java,所以我是新来的。
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int i = 0;
int data[];
data = new int[5];
for (i = 0; i <5; i ++) {
System.out.println("Please enter your " + (i + 1)+ " number");
data[i] = scan.nextInt();
}
System.out.println(data[0] + data[1] + data[2] + data[3] + data[4]);
int max = findMax(data);
System.out.println(max);
public static int findMax(int data[]){
int max = data[0];
int element = 1;
while (element != 5); {
if (data[element] > max) {
max = data[element];
}
}
System.out.println(max);
return max;
}
我会期待一个最大值,但没有显示在所有,但程序还没有终止。
1条答案
按热度按时间x4shl7ld1#
while (element != 5);
导致无限循环。首先,删除它后面的;
,因为这会使循环体成为空语句。接下来,请注意,element
在初始化为1
后从未更改,因此循环条件element != 5
始终为true。如果你想使用
element
作为遍历数组的索引,你应该在循环块的末尾增加它,以便处理下一个元素。请注意,最好与
data.length
进行比较,而不是硬编码值5
。或者,更好的是,使用增强的for循环来避免在不需要索引时自己处理索引:
另一种带流的解决方案: