0

Javaで文字配列を作ったのですが、

char[] letterGrade = { 'A','B','C','D','F'};

このような要素を参照しようとしていますが、

letterGrade[0]

タイプに互換性がないというエラーが表示されます

必須: char[]

見つかった: char

double の配列を使用してコードの他の場所でこれを行ったところ、正常に機能しました。文字配列で機能しないのはなぜですか?

ありがとう!

あなたのコメントから更新

public static void method()
{
    double totalEarnedPoints = 1;
    double totalPossiblePoints = 1;

    double gradePer = 0.0;
    gradePer = (totalEarnedPoints / totalPossiblePoints);
    char[] letterGrade = { 'A', 'B', 'C', 'D','F'};
    if (gradePer >= gradeScale[0])
    {
        letterGrade = char letterGrade(0);
    }
    else if (calcPercent >= gradeCutoffs[1] && calcPercent < gradeCutoffs[0])
    {
        letterGrade= char letterGrade(1);
    }
}
4

4 に答える 4

1

「if文で実装しようとしているのですが、

char[] letterGrade = { 'A', 'B', 'C', 'D','F'}; 
if (calcPercent >= gradeCutoffs[0]) { 
      letterGrade = letterGrade[0];
}

あなたがそうしているなら。letterGrade は 型なのでchar[]、char だけで代入することはできません。L.H.S.値は char でなければなりません。

于 2013-06-15T06:55:45.513 に答える
0
required: char[]

found: char 

このタイプのエラーは、char[] データ型で char を割り当てている場合に発生します。

元:

char[] ch = letterGrade[0];
于 2013-06-15T07:07:59.270 に答える
0

投稿されたサンプルは、ターゲット変数が char 型の場合に機能するため、代入で何か間違ったことをしていると思います。を必要とする関数を呼び出している可能性がありchar[]ます。funct(letterGrade)[0]

問題が解決しない場合は、もう少しコードを投稿する必要があります。

アップデート

コンパイルできるようにコードを修正しました。もちろん、それがどうあるべきかはわからないので、いくつかの仮定を立てる必要がありましたが、構文がどうあるべきかを確認する必要があります。

public static void method()
{
    double totalEarnedPoints = 1;
    double totalPossiblePoints = 1;
    double gradeScale[] = {1, 2, 3};
    double gradeCutoffs[] = {1, 2, 3};
    double gradePer = 0.0;
    char letter;
    double calcPercent = 1;

    gradePer = (totalEarnedPoints / totalPossiblePoints);
    char[] letterGrade = { 'A', 'B', 'C', 'D','F'};
    if (gradePer >= gradeScale[0])
    {
        letter = letterGrade[0];
    }
    else if (calcPercent >= gradeCutoffs[1] && calcPercent < gradeCutoffs[0])
    {
        letter = letterGrade[1];
    }
    else
        letter = 'F';

    System.out.println("Grade:"+letter);
}
于 2013-06-15T06:48:16.420 に答える
0

これは私にとってはうまくいきます: char[] letterGrade = { 'A','B','C','D','F'}; System.out.println(letterGrade[0]); Aを出力します

だから私はそれがあなたがそれを割り当てているものだと思います。おそらくどこかにあるでしょう: letterGrade = letterGrade[A]

于 2013-06-15T06:48:55.203 に答える