Java 条件运算符和if-else是否工作不同?

Java 条件运算符和if-else是否工作不同?,java,Java,这在Java7中不是一个错误 return (sum>9)? superDigit(sum,1): sum; 鉴于 if(sum>9) superDigit(sum,1); else return sum; 这会引发“缺少返回语句”错误。为什么?您的if条件中缺少return语句。事实上,它必须是: if(sum>9) return superDigit(sum,1); else return sum; 或者,您可以简化: if(sum>9)

这在Java7中不是一个错误

return (sum>9)? superDigit(sum,1): sum; 
鉴于

if(sum>9) superDigit(sum,1); 
else return sum; 

这会引发“缺少返回语句”错误。为什么?

您的
if
条件中缺少return语句。事实上,它必须是:

if(sum>9) 
    return superDigit(sum,1); 
else return sum;
或者,您可以简化:

if(sum>9) 
    return superDigit(sum,1); 
return sum;
是三元运算符语句。整个语句是一个语句

if(sum>9) superDigit(sum,1); else return sum; 
是if/else条件语句。每个条件分支必须是一个完整语句或一组语句

if(sum>9) superDigit(sum,1); else return sum;