Java 我丢失了一个返回语句,不知道确切原因是什么?
//由于某种原因,我在这里丢失了一个return语句,即使我返回的是正确的类型Java 我丢失了一个返回语句,不知道确切原因是什么?,java,char,return,Java,Char,Return,//由于某种原因,我在这里丢失了一个return语句,即使我返回的是正确的类型 static char getOperator(String firstLine){ Scanner keyboard = new Scanner(System.in); firstLine = "Enter a valid operator (+ or - or *):"; System.out.println(firstLine); String doohickey
static char getOperator(String firstLine){
Scanner keyboard = new Scanner(System.in);
firstLine = "Enter a valid operator (+ or - or *):";
System.out.println(firstLine);
String doohickey = keyboard.nextLine();
char operator = doohickey.charAt(' ');
if(operator=='+' && operator=='-' && operator=='*')
return operator;
}
在单线程环境中,此条件始终为false。您的运算符在评估时不能为3个值
通常,您需要为方法的所有分支提供有效的返回类型。编译器可能确定不会命中此分支,因此在if块之后需要一个return语句。仅当条件为true时才返回值。当条件不为true时,必须返回某个内容或引发异常。当用大括号括住
if
-条件块时,它会变得更清晰。缺少else
块,因此并非所有分支都实际返回值
此外,此条件永远不会为真,因为局部变量永远不能同时为所有三个字符。你的意思是写还是写
if(operator=='+' || operator=='-' || operator=='*')
{
return operator;
}
else
{
throw new NotImplementedException();
}
那么,如果用户键入一个H?嗯,
dooickey.charAt(“”),它会返回什么
?该语句在所有环境中都是错误的,因为运算符是一个局部变量
if(operator=='+' || operator=='-' || operator=='*')
{
return operator;
}
else
{
throw new NotImplementedException();
}