Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.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 我丢失了一个返回语句,不知道确切原因是什么?_Java_Char_Return - Fatal编程技术网

Java 我丢失了一个返回语句,不知道确切原因是什么?

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

//由于某种原因,我在这里丢失了一个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 = 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(); 
}