Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.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 使用「;或;“a”中的声明;如果;具有字符串长度方法的语句_Java_If Statement - Fatal编程技术网

Java 使用「;或;“a”中的声明;如果;具有字符串长度方法的语句

Java 使用「;或;“a”中的声明;如果;具有字符串长度方法的语句,java,if-statement,Java,If Statement,因此,在我的第五行代码[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

因此,在我的第五行代码
[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;
}

}这意味着
|
运算符不接受布尔值和int值,必须给它两个布尔表达式

if(length == 2 || length ==  1)

这意味着
|
运算符不接受布尔值和int,您必须给它两个布尔表达式

if(length == 2 || length ==  1)
你想说如果(长度=1 | |长度=2)。你现在要做的是说如果(长度==2或1)。前者涉及两个逻辑语句,可以计算true或false,后者一方面涉及一个逻辑语句,另一方面涉及一个整数

计算机不会将length==2或1解释为“如果length为1或2,则返回true”,而是解释为“(如果length=2,则返回true)或(整数1)”。

您想说的是if(length==1 | | length==2)。你现在要做的是说如果(长度==2或1)。前者涉及两个逻辑语句,可以计算true或false,后者一方面涉及一个逻辑语句,另一方面涉及一个整数


计算机不会将length==2或1解释为“如果length为1或2,则返回true”,而是解释为“(如果length为2,则返回true)或(整数1)。

您可以执行以下操作:

if (Arrays.asList(1,2,3).contains(l.lenghth))
   // code

您可以执行以下操作:

if (Arrays.asList(1,2,3).contains(l.lenghth))
   // code

应该是
length==2 | | length==1
。无法在条件中对1执行2。应为
length==2 | | length==1
。不能在有条件的情况下做2对1。速度+1(有两种类型的人:快的和没有的)+1速度(有两种类型的人:快的和没有的)。这没有错,只是不好。一般来说,你付出的努力越多,回报就越多。我看到你是新来的,所以我把你重定向到一个页面,专门告诉你这个网站的注意事项。啊…是的…不过我想我不能写更多的支持来支持我的答案,因为这只是一行微不足道的代码。这没有错,只是不好。一般来说,你付出的努力越多,回报就越多。我看到你是新来的,所以我把你重定向到一个页面,专门告诉你这个网站的注意事项。啊…是的…不过我想我不能写更多的支持来支持我的答案,因为这只是一行微不足道的代码