java - 如何检查用户输入是否与二维数组的元素匹配?爪哇
问题描述
我正在创建一个学生成绩簿,允许用户输入他们的学生姓名和 4 个成绩,然后可以选择计算学生和班级的平均成绩,如下图所示。
使用下面的代码,我收到的学生平均值为“0.0%”并且没有错误。我是否正确地指示程序查看学生姓名是否与二维数组中的适当元素匹配?
我有该程序的所有其他部分工作。
private String[][] grades = new String[16][5];
//Declare Variables
String firstName, lastName, name;
String test1, test2, test3, test4;
test1 = t1Input.getText();
test2 = t2Input.getText();
test3 = t3Input.getText();
test4 = t4Input.getText();
firstName = firstInput.getText();
lastName = lastInput.getText();
name = firstName + " " + lastName + ": ";
grades[students][0] = name;
grades[students][1] = test1;
grades[students][2] = test2;
grades[students][3] = test3;
grades[students][4] = test4;
students++;
private void sAvgInputActionPerformed(java.awt.event.ActionEvent evt) {
String firstName = firstInput.getText();
String lastName = lastInput.getText();
String name = firstName + " " + lastName + ": ";
int sum = 0;
double divide = 0;
for (int i = 0; i <= 1; i++) {
if (name.equals(grades[0][1])) {
for (int grade = 1; grade <= 4; grade++) {
sum = Integer.parseInt(grades[i][1]) + i;
}
break;
}
}
divide = sum / 4;
gradesOutput.setText(firstName + "'s grade average is " + divide + "%.");
}
解决方案
将循环更改为:
//assume it as a simple table since its 2d array
//Since you are storing the name in first(0th index) column,
//only row should be loop
for (int i = 0; grades[i][0] != null; i++) {
if (name.equals(grades[i][0])) {
for (int grade = 1; grade <= 4; grade++)
//same row,different column
sum = sum + Integer.parseInt(grades[i][grade]);
break;
}
}
推荐阅读
- sql - SQL:插入 DLY 行总和小于 WKLY 行的行
- c# - 为什么使用整数参数调用 RPC 函数会出错?-光子统一
- android - 如何从 Room Database 和 RecyclerView 中删除项目并更新列表
- php - phpdotenv 下载很多包
- java - 使用 Java 8 Stream API 按范围分组
- java - 将数组分配给对象的困惑
- sqlite - SELECT name, max(inhabitants): 保证匹配?
- java - 将 char[] 重新解释为带有字段的对象
- javascript - 仅比较日期字符串Javascript中的月份
- c# - 为什么 IServiceCollection.AddScoped
() 无法获得 TImplementation?