2017-09-25 9 views
0

こんにちは私は文字グレードを取ってGPA値に変換するプログラムを作っています。プログラムの最初の部分は、パーセントを取って、それを文字の等級に変換し、今は変換された文字の等級をint値に変換しようとしています。スイッチケースを使用することのみが許可されています。しかし、これを行うときに互換性のない型エラーが発生しています:java.lang.String required:int。私が何を変える必要があるか分からない、どんな助け?スイッチケースを使用すると、互換性のないタイプのエラーが発生する

おかげ

public static int convertToGradePoint(String letterGrade) { 

    int gradepoint; 

    switch (letterGrade) { 

    case "A+" : 
    gradepoint = 12; 
    break; 

    case "A" : 
    gradepoint = 11; 
    break; 

    case "A-" : 
    gradepoint = 10; 
    break; 

    case "B+" : 
    gradepoint = 9; 
    break; 

    case "B" : 
    gradepoint = 8; 
    break; 

    case "B-" : 
    gradepoint = 7; 
    break; 

    case "C+" : 
    gradepoint = 6; 
    break; 

    case "C" : 
    gradepoint = 5; 
    break; 

    case "C-" : 
    gradepoint = 4; 
    break; 

    case "D+" : 
    gradepoint = 3; 
    break; 

    case "D" : 
    gradepoint = 2; 
    break; 

    case "D-" : 
    gradepoint = 1; 
    break; 

    default : 
    gradepoint = 0; 
    break; 
} 

return gradepoint; 


    } 
    } 
+2

をアップグレードし、次のよう場合に使用することです? –

+0

すべての文字のグレードとそのグレードポイントの値を 'Map 'に入れて、 'switch'を完全にスキップしてみませんか? – NRitH

+0

おそらく最後の中かっこを取り除いてください。 – DevilsHnd

答えて

0

あなたは十分なコードを投稿しませんでした。おそらく、この下にやっている:

String a = convertToGradePoint(input); 

あなたはこれを実行する必要があります。

int a = convertToGradePoint(input); 
0

は、Java SE 7ではJava Doc

を引用して、後で、あなたはでStringオブジェクトを使用することができますスイッチ ステートメントの式

つまり、JDKのバージョンは<です。同じコードをコンパイルするには、最新バージョンのJDKを入手できます。

+0

私はそれをDr Java上で実行する方法を知りました。私は自分のコンピュータ上でJava 8を実行していますが、Dr JavaはJDK 6だけを実行しています。私はそれをどのように更新するかについての手がかりはありません。 – JVAN

+0

@JVAN、 'PATH'変数をチェックし、' java 6'パスを使用しているかどうか確認してください。 – Ravi

0

Java7 +を使用していない限り、文字列インスタンスを切り替えたり、int(およびバイト/ char/short、long/doubleではなく)のみを切り替えることはできません。このため

代替は

if(letterGrade.equals("A+")){ 
gradepoint = 12; 
} 

または使用しているJavaのバージョンのJava

関連する問題