Java 返回字符的问题
我不明白为什么会出现一个错误,说明getClassification方法必须返回char类型的结果Java 返回字符的问题,java,if-statement,methods,char,return-type,Java,If Statement,Methods,Char,Return Type,我不明白为什么会出现一个错误,说明getClassification方法必须返回char类型的结果 private char A, B, C, D; public char getClassification() { if(parts[0] >= 0 && parts[0] <= 127) return (A); else if(parts[0] >= 128 && parts[0] <= 191)
private char A, B, C, D;
public char getClassification() {
if(parts[0] >= 0 && parts[0] <= 127)
return (A);
else if(parts[0] >= 128 && parts[0] <= 191)
return (B);
else if(parts[0] >= 192 && parts[0] <= 223)
return (C);
else if(parts[0] >= 224 && parts[0] <= 255)
return (D);
}
私有字符A、B、C、D;
公共字符分类(){
if(parts[0]>=0&&parts[0]=128&&parts[0]=192&&parts[0]=224&&parts[0]需要else语句或默认返回语句需要else语句或默认返回语句当所有if条件都为false时,getClassification
不返回值
private char A, B, C, D;
public char getClassification() {
if(parts[0] >= 0 && parts[0] <= 127)
return (A);
else if(parts[0] >= 128 && parts[0] <= 191)
return (B);
else if(parts[0] >= 192 && parts[0] <= 223)
return (C);
else if(parts[0] >= 224 && parts[0] <= 255)
return (D);
else
return //Something Else(char Value)
}
私有字符A、B、C、D;
公共字符分类(){
if(parts[0]>=0&&parts[0]=128&&parts[0]=192&&parts[0]=224&&parts[0]当所有if条件都为false时,getClassification
不会返回值
private char A, B, C, D;
public char getClassification() {
if(parts[0] >= 0 && parts[0] <= 127)
return (A);
else if(parts[0] >= 128 && parts[0] <= 191)
return (B);
else if(parts[0] >= 192 && parts[0] <= 223)
return (C);
else if(parts[0] >= 224 && parts[0] <= 255)
return (D);
else
return //Something Else(char Value)
}
私有字符A、B、C、D;
公共字符分类(){
如果(parts[0]>=0&&parts[0]=128&&parts[0]=192&&parts[0]=224&&parts[0]您已将每个return
语句放入if
语句中
当您将所有return
语句放入if
条件中时(即使函数肯定要返回所提到的类型),编译器没有足够的智能来确定您从函数返回的内容
尝试编译它,编译器将抱怨同样的事情:
public char getClassification() {
if(true) return 'a';
}
您已将每个return
语句放入if
语句中
当您将所有return
语句放入if
条件中时(即使函数肯定要返回所提到的类型),编译器没有足够的智能来确定您从函数返回的内容
尝试编译它,编译器将抱怨同样的事情:
public char getClassification() {
if(true) return 'a';
}
根据if条件返回字符a、b、c、d,但在某些条件下,如果所有条件都为false(例如部分[0]>255或部分[0]=0&&parts[0]=128&&parts[0]=192&&parts[0]=224&&parts[0]根据if条件返回字符a、b、c、d,但在某些条件下,如果所有条件都为false(例如部分[0])>255或零件[0]=0&&parts[0]=128&&parts[0]=192&&parts[0]=224&&parts[0]这需要更多的解释才能成为一个好答案。这需要更多的解释才能成为一个好答案。这是因为您所有的返回语句都是有条件的。如果所有条件都为false,则方法将在不返回任何内容的情况下到达结尾。您需要一个“默认”return
语句,或者如果是>case
不应该出现在您的程序中,您应该抛出一个[运行时]异常
。请参阅。这是因为您所有的返回语句都是有条件的。如果所有条件都为false,则方法将到达末尾而不返回任何内容。您需要一个“默认”的返回
语句,或者如果案例
不应该出现在您的程序中,则应该抛出
一个[运行时]异常
。请参阅。这无关紧要,即使您在每个if
语句中放入true
(如if(true)
),编译器也会抱怨。因此解释不是100%正确。与其使用默认的return
语句,不如使用抛出新的SomeException()如果那部分代码中的状态是非法的,则应考虑使用。//顺便说一句,else
有助于冗长,但也可以省略。即使在每个if
语句中都使用true
(asif(true)
,也无所谓,编译器会抱怨。因此解释不是100%正确。如果在代码的该部分出现非法状态,throw new SomeException()
,则应该考虑使用throw new SomeException()
,而不是默认的return
语句。//顺便说一句,else
有助于避免冗长,但也可以省略。