1

したがって、コードの 5 行目[if(length == 2 || 1)]で、or ステートメントで演算子 || を指定するとエラーが発生します。引数の型 boolean、int については定義されていません。構文のどこが間違っているのか、どうすれば修正できるのかについてのアイデアはありますか? ありがとう!

//Write a program that translates a letter grade into a number grade. Letter grades are
//A B C D F, possibly followed by + or -. Their numeric values are 4, 3, 2, 1, and 0.
//There is no F+ or F-. A + increases the numeric value by 0.3, a - decreases it by     0.3.
//However, an A+ has the value 4.0. All other inputs have value –1.
//Enter a letter grade:

// getNumericGrade メソッドでクラス Grade を使用します。

public class Grade {
private double grade = 0.0;
public double getNumericGrade(String letterGrade){
    int length = letterGrade.length();
    if(length == 2 || 1){
        char startChar = letterGrade.charAt(0);
        char endChar = letterGrade.charAt(1);
        switch(startChar){
        case 'A':
            this.grade = 4.0;
            break;
        case 'B':
            this.grade = 3.0;
            break;
        case 'C':
            this.grade = 2.0;
            break;
        case 'D':
            this.grade = 1.0;
            break;
        case 'F':
            this.grade = 0.0;
            break;
        default:
            this.grade = -1;
        }
    if(length == 2){
        switch(endChar){
        case '-':
            this.grade = this.grade - .3;
            break;
        case '+':
            if(startChar != 'A'){
            this.grade = this.grade + .3;
            }
            break;
        default:
            this.grade = -1;
        }
    }
    if(startChar == 'F' && length != 1){
        this.grade = -1;
    }
    }else{
        this.grade = -1;
    }
    return this.grade;
}

}

4

3 に答える 3

3

これは、||演算子が boolean と int を取らないことを意味します。2 つの boolean 式を指定する必要があります。

if(length == 2 || length ==  1)
于 2013-03-18T00:55:54.580 に答える
1

if(length == 1 || length == 2) と言いたいです。あなたが今していることは、if(length == 2 OR 1) と言っていることです。前者には、真または偽を評価できる 2 つの論理ステートメントが含まれ、後者には一方では論理ステートメントが含まれ、他方では整数が含まれます。

コンピューターは length == 2 OR 1 を「長さが 1 または 2 の場合は true を返す」と解釈せず、「(長さが 2 の場合は true を返す) または (整数 1)」と解釈します。

于 2013-03-18T01:00:25.863 に答える
0

次のようなことができます:

if (Arrays.asList(1,2,3).contains(l.lenghth))
   // code
于 2013-03-18T05:30:21.793 に答える