如何获取 Array[] 的索引号
Posted
技术标签:
【中文标题】如何获取 Array[] 的索引号【英文标题】:How to get the index number of the Array[] 【发布时间】:2016-01-06 19:01:29 【问题描述】:我正在尝试解决这个问题:
编写一个名为 GradesAverage 的程序,提示用户输入 学生人数,从键盘读取,并将其保存在 int 中 名为 numStudents 的变量。然后它会提示用户输入等级 每个学生并将它们保存在一个称为成绩的 int 数组中。 您的程序应检查分数是否在 0 到 100 之间。示例 会话如下:
Enter the number of students: 3
Enter the grade for student 1: 55
Enter the grade for student 2: 108
Invalid grade, try again...
Enter the grade for student 2: 56
Enter the grade for student 3: 57
The average is 56.0
但是,在我的文件中,程序是这样工作的(注意“学生”):
Enter the number of students: 3
Enter the grade for student10 55
Enter the grade for student20 56
Enter the grade for student30 57
你能看到 10、20 和 30 吗?它不显示student1
、student2
和student3
,而是显示student10
、student20
和student30
。
这是我的代码:
import java.util.Scanner;
class GradesAverage
public static void main (String[] args)
Scanner miScanner = new Scanner(System.in);
System.out.println("Enter the number of students: ");
int numStudents = miScanner.nextInt();
int numberGrades[] = new int[numStudents];
int averageGrade = 0;
for (int i = 1; i <= numStudents; i++)
System.out.println("Enter the grade for student" + i + numberGrades[numStudents - i]);
int grade = miScanner.nextInt();
averageGrade += grade;
if (grade < 0 || grade >100)
System.out.println("Invalid grade, try again...");
break;
double average = averageGrade/numStudents;
System.out.println("The average is " + average);
【问题讨论】:
【参考方案1】:改变
System.out.println("Enter the grade for student" + i + numberGrades[numStudents - i]);
到
System.out.println("Enter the grade for student " + i + ":");
由于额外的numberGrades[numStudents - i]
,输出了额外的0。
为什么完全为零?因为numberGrades
是一个数组;初始化数组时,它将其元素初始化为其默认类型的值。 (这里是int
s的数组,所以它的所有元素都初始化为0)
PS:您在冒号后面看到的数字(在本例中为 55):
... student 1: 55
实际上是一个输入,而不是一个sysout。
【讨论】:
更恰当的是,应该改为:System.out.print("Enter the grade for student " + i + ":");
以匹配格式。【参考方案2】:
System.out.println("Enter the grade for student" + i + numberGrades[numStudents - i]);
它打印出来这个输入学生的成绩i
numberGrades[numStudents - i]
这些不是在打印之前添加的,而是打印每个项目。
【讨论】:
以上是关于如何获取 Array[] 的索引号的主要内容,如果未能解决你的问题,请参考以下文章