Java 如果数组未满,请在末尾添加一个值
因此,我正在编写一些代码,假设这些代码检查我所有的数组插槽是否已满,如果没有,则将我的新等级添加到数组中的下一个插槽,并返回true,如果已满,则返回false 我不知道如何检查我的数组(等级)是否已满。。我有类似的东西,但不太确定它是否正确 问题是出于某种原因,它似乎只是增加了一个等级。这也影响了我的成绩,这是生产?作为一个我从未见过的数字Java 如果数组未满,请在末尾添加一个值,java,arrays,loops,Java,Arrays,Loops,因此,我正在编写一些代码,假设这些代码检查我所有的数组插槽是否已满,如果没有,则将我的新等级添加到数组中的下一个插槽,并返回true,如果已满,则返回false 我不知道如何检查我的数组(等级)是否已满。。我有类似的东西,但不太确定它是否正确 问题是出于某种原因,它似乎只是增加了一个等级。这也影响了我的成绩,这是生产?作为一个我从未见过的数字 public boolean addGrade(int newGrade) { for (int i = 0; i < grades.len
public boolean addGrade(int newGrade) {
for (int i = 0; i < grades.length; i++) {
if (grades[i] == -1)//or should i use 0 {
grades[i] = newGrade;
numGrades++;
return true;
}
}
return false;
}
public boolean addGrade(int newGrade){
对于(int i=0;i
score方法(它所要做的就是计算并返回分数:score total/totalGrades)
public double computeScore(){
双倍合计=0;
对于(int i=0;i
因为您要维护一个计数器变量numGrades
,所以直接使用它在所需位置插入一个新项目
public boolean addGrade(int newGrade) {
if(newGrades<grades.length){
grades[numGrades] = newGrade;
numGrades++;
return true;
}
return false;
}
public boolean addGrade(int newGrade){
如果(newGrades否。您不应该做您正在做的事情。您有numGrades
,我认为您应该使用它来跟踪addGrade()中的正确位置。
if(numGrades
那么
public double computeScore() {
double total = 0;
if (numGrades == 0) {
return total;
}
if (numGrades > grades.length) {
numGrades = grades.length;
}
for (int i = 0; i < numGrades; i++) {
total += grades[i];
}
return total / numGrades;
}
public double computeScore(){
双倍合计=0;
如果(numGrades==0){
返回总数;
}
如果(numGrades>坡度.长度){
numGrades=等级。长度;
}
对于(int i=0;i
您甚至可以通过增加数组括号内的值来收紧tad:
public boolean addGrade(int newGrade) {
if (numGrades < grades.length) {
grades[numGrades++] = newGrade;
return true;
}
return false;
}
public boolean addGrade(int newGrade){
if(numGrades<等级长度){
等级[numGrades++]=新等级;
返回true;
}
返回false;
}
当您进行总计时,因此使用0
作为默认值,而不是-1
什么类型是分数
?int[]分数,并且希望保持它为该类型,而不是整数,因为某种原因我的分数一直在产生“?”这对我来说真的很奇怪me@dave已编辑。大概totalGrades
为0。而且,我认为您不需要它。要么totalGrades
要么numGrades
-不是两者都有。如果(newGrade@ElliottFrisch显然,这是错误的。
public double computeScore() {
double total = 0;
if (numGrades == 0) {
return total;
}
if (numGrades > grades.length) {
numGrades = grades.length;
}
for (int i = 0; i < numGrades; i++) {
total += grades[i];
}
return total / numGrades;
}
public boolean addGrade(int newGrade) {
if (numGrades < grades.length) {
grades[numGrades++] = newGrade;
return true;
}
return false;
}