static final int MAX = 50;
public static void main(String[] args)
{
int index, average;
int highest = 0, student = 1;
Scanner keyboard = new Scanner(System.in);
String [] students = new String[MAX];
int[] grades = new int[MAX];
System.out.println("Please enter the name of the student and their test grade");
System.out.print("Students: ");
for(index=0; index<MAX; index++)
{
students[index] = keyboard.nextLine();
student = student + index;
if(students[index]=="Done"))
{
student = student - 1;
continue;
}
}
System.out.print("Grades: ");
for(index=0; index<student; index++)
grades[index] = keyboard.nextInt();
averageMan(grades, student);
for(index=0; index<student; index++)
if(grades[index] < averageMan(grades, student))
System.out.println(students[index] + " Your test grade was " +
"below the class average. Step it up.");
for(index=0; index<student; index++)
if(grades[index] > highest)
highest = grades[index];
System.out.println("The highest test grade in the class goes to " +
students[highest] + " with a grade of " + grades[highest]);
}
public static int averageMan(int[] g, int s)
{
int index, sum = 0;
int averages;
for(index=0; index<s; index++)
sum = sum + g[index];
averages = sum / s;
return averages;
}
}
答案 0 :(得分:3)
答案 1 :(得分:1)
您可以循环收集学生详细信息,直到用户输入表明他们已完成输入详细信息的特定令牌。
编辑这看起来就像你要做的那样......但是continue
会转到循环中的下一个项目。你想break
不是吗?
答案 2 :(得分:1)
使用空字符串初始化students
数组。同时使用grades
初始化-1
数组。在用于计算平均值/最高/最低值的循环中,检查空字符串和-1。
答案 3 :(得分:1)
尝试更改
student = student + index;
if(students[index]=="Done"))
{
student = student - 1;
continue;
}
为:
if(students[index]=="Done"))
{
break;
}
student = student + 1;
然后,当学生的姓名输入为“完成”时,您将退出录入循环,变量student
将包含输入的学生人数。
答案 4 :(得分:0)
1)嘿,你为什么这样做?
if(students[index]=="Done"))
{
student = student - 1;
continue;
}
2)您可以将代码划分为更小的方法
3)您可以按照建议的人使用Collections API。
答案 5 :(得分:0)
最简单的解决方案是使用集合类,如java.util.ArrayList而不是数组。如果必须使用数组,也许每次添加新学生时都可以重新分配数组?此页面有一个如何执行此操作的示例 - How to resize an array in Java。
答案 6 :(得分:0)
您的for
循环有三个部分,中间部分解析为真/假条件。它可以很简单,就像你有或复杂,像这样:
for(index=0; index<MAX && !done; index++)
done
是boolean
,如果您检测到一个表示您想要停止的值,则该值为false。
答案 7 :(得分:0)