Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我在java数组中有一个错误(将字母级别存储在数组中) public char calculateGrade(int[]分数,char[]等级){ 对于(int r=0;r90) 成绩=‘A’; 否则如果(分数[r]>80) 成绩=‘B’; 否则如果(分数[r]>70) 等级=‘C’; 否则如果(分数[r]>60) 成绩='D'; 其他的 等级=‘F’; 返回等级; } }_Java_Arrays_Methods - Fatal编程技术网

我在java数组中有一个错误(将字母级别存储在数组中) public char calculateGrade(int[]分数,char[]等级){ 对于(int r=0;r90) 成绩=‘A’; 否则如果(分数[r]>80) 成绩=‘B’; 否则如果(分数[r]>70) 等级=‘C’; 否则如果(分数[r]>60) 成绩='D'; 其他的 等级=‘F’; 返回等级; } }

我在java数组中有一个错误(将字母级别存储在数组中) public char calculateGrade(int[]分数,char[]等级){ 对于(int r=0;r90) 成绩=‘A’; 否则如果(分数[r]>80) 成绩=‘B’; 否则如果(分数[r]>70) 等级=‘C’; 否则如果(分数[r]>60) 成绩='D'; 其他的 等级=‘F’; 返回等级; } },java,arrays,methods,Java,Arrays,Methods,以上是我的方法之一。它读取文件的一部分(分数[]),并确定它们的字母等级。我需要知道的是如何将字母grade存储在一个我已经装箱的数组中,称为grades[]。grades[r]='A';(其他类似) 这假设分数与分数的长度相同这看起来像是一个可疑的家庭作业,所以看看你如何访问分数数组,以及你如何访问分数数组。你看到区别了吗?试试这个: public char calculateGrade(int [] scores, char [] grades){ for (int r = 0; r

以上是我的方法之一。它读取文件的一部分(分数[]),并确定它们的字母等级。我需要知道的是如何将字母grade存储在一个我已经装箱的数组中,称为grades[]。

grades[r]='A';(其他类似)


这假设分数与分数的长度相同

这看起来像是一个可疑的家庭作业,所以看看你如何访问
分数
数组,以及你如何访问
分数
数组。你看到区别了吗?

试试这个:

public char calculateGrade(int [] scores, char [] grades){
    for (int r = 0; r < scores.length; r++){
        //System.out.println(scores[r] + " ");
        if (scores[r] > 90)
            grades = 'A';
        else if (scores[r] > 80)
            grades = 'B';
        else if (scores[r] > 70)
            grades = 'C';
        else if (scores[r] > 60)
            grades = 'D';
        else
            grades = 'F';

        return grades;
    }
}
public void calculateGrade(int[]分数,char[]等级){
对于(int r=0;r90)
等级[r]=“A”;
否则如果(分数[r]>80)
等级[r]=“B”;
否则如果(分数[r]>70)
等级[r]=‘C’;
否则如果(分数[r]>60)
等级[r]=‘D’;
其他的
等级[r]=‘F’;
}
}

A
类型为char,而标识符
grades
类型为char[]。您需要做的是使用
[]
运算符在数组中累积分数。此外,在完成for循环后,而不是在第一次迭代时,您应该返回
grades
。确保数组<代码>等级> <代码>相当于<代码>分数 .

避免函数中的副作用,在可能的情况下,将其视为另一种方法:

grades = 'A';
public char calculateGrade(int[] scores)
{
    char grade = 'F';
    for(int score : scores)
    {
        if(score >= 90) grade = 'A';
        else if(score >= 80) grade = 'B';
        else if(score >= 70) grade = 'C';
        else if(score >= 60) grade = 'D';
        else grade = 'F';
    }
    return grade;
}
//给定分数,返回相应的分数。
公共字符计算等级(整数分数){
//参见功能合同。
}
//后来。。。
整数分数[]={10,70,50,90};
int grades[]=新字符[分数.长度];//但实际上,使用ArrayList或simialr。。。
对于(变量i=0;i

<>快乐编码。

我所看到的所有内容都不考虑这样一个事实,那就是你好像在试图通过引用,这在java中是不可能完成的。您要么需要更改方法的返回类型(当前它需要一个字符),要么让方法只访问一个全局变量,而不是传递一个变量。它看起来确实像是家庭作业,所以我不打算再进一步了。

我是否会返回分数[]?还是分数?还是怎样顺便说一下,谢谢你,我可以发誓我试过sub r。只要返回它是一个对象(事实上是一个字符数组)。还可以将返回类型更改为char[](您正在返回整个等级数组,对吗?),或者像Tamas一样,不返回任何内容,只需将结果保留在等级中并访问等级(因为您正在传递它),谢谢。在方法签名中,我的返回值应该是什么?grade[]?要么是void(参见Tamas的答案)并只从传递给calculateGrade的位置访问grade,要么是char[],如果您希望返回称为grade的char数组没有问题josh,我也希望您看到关于将return语句移出循环的注释(除非您完全删除它)为什么不考虑使用Switter语句呢?嗨,Josh,还要注意你的返回在for循环中,这对于你想要的是错误的。我会像下面建议的那样使用等级[r]='A'等,但是为了感谢这么多人,我会把回报放在循环之外。乔尔,我的实际程序比这个大得多,里面有一个switch语句调用这个。是的,但是。。。“我需要知道的是如何将字母grade存储在一个数组中,该数组已装入名为grades[]的板条箱中。”
public char calculateGrade(int[] scores)
{
    char grade = 'F';
    for(int score : scores)
    {
        if(score >= 90) grade = 'A';
        else if(score >= 80) grade = 'B';
        else if(score >= 70) grade = 'C';
        else if(score >= 60) grade = 'D';
        else grade = 'F';
    }
    return grade;
}
// Given a score, return the appropriate Grade for it.
public char calculateGrade(int score){
   // See function contract.
}

// Later...
int scores[] = {10,70,50,90};
int grades[] = new char[scores.length]; // but really, use an ArrayList or simialr...
for (var i = 0; i < scores.length; i++) {
   // We used this form of "for" to keep an index
   grades[i] = calculateGrade(scores[i]);
}

// And perhaps there might be a function like this as well:

// Given a set of scores, get the associated grades.
public char[] calculateGrades(int[] scores) {
   // See above.
   // Note how this avoids mutating an input parameter.
   // Keeping functions "more refined" also generally helps.
}