java如何查找数组中的最大数
我有一个等级数组(g),它是一个int[]
,我试图在这个数组中找到最大的等级。我试过这个:
public static String highestGradeName(int[] g, String[] n) {
String highStudent;
int highest = g[0];
for (int i=1; i < g.length; i++) {
if (highest < g[i]) {
highStudent = n[i+1];
return (highStudent);
}
}
return null;
}
我有另一个数组,它是一个字符串数组,包含学生的名字,我有return null
,因为它说它需要一个return语句,但是我不打算它被null
。是什么导致它返回null
而不是highstudent
我使用了精确的代码来查找最低等级,它工作得很好。我对这个代码所做的唯一一件事就是将if语句从highest > g[i]
更改为highest < g[i]
# 1 楼答案
从循环内部返回是错误的,因为以后在数组中总是可以有更大的数字。您应该保留最高级别的索引,并在末尾返回相应的名称:
# 2 楼答案
根据你的逻辑,让我们打破僵局
原始测试用例:
将
{0,1,2}
作为整数数组。 将{"arya", "jon", "tyrion"}
作为字符串数组获取null的原因是0处的整数索引应大于或等于1处的索引
现在,当您在方法中使用类型字符串时。您应该返回一个字符串,这就是您的编辑器所说的返回内容。您应该使用循环外返回,因为您需要找到最高的学生,这只有在循环所有列表之后才可能
您可以尝试以下方法:
PS:Improve代码根据mureinik的回答,我还有一个变量可以帮助您轻松理解