Java中的return语句?

时间:2014-04-26 19:09:47

标签: java return

我正在查看java源代码,ArrayList.java-> hugeCapacity,当我发现以前从未见过的东西时:

private static int hugeCapacity(int minCapacity) {
    if (minCapacity < 0) // overflow
       throw new OutOfMemoryError();
   return (minCapacity > MAX_ARRAY_SIZE) ?
       Integer.MAX_VALUE :
       MAX_ARRAY_SIZE;
}

我在发布此问题之前查看了此网站,但没有发现任何有用的信息。我还查看了return()的文档,但我没有成功。也许我在寻找错误的东西。

无论如何,返回声明在做什么?

3 个答案:

答案 0 :(得分:1)

return (minCapacity > MAX_ARRAY_SIZE) ?
       Integer.MAX_VALUE :
       MAX_ARRAY_SIZE;

这里返回有三元运算符传递给它。它的工作原理类似于if-else

if(minCapacity > MAX_ARRAY_SIZE){

return Integer.MAX_VALUE;
}

else{
return MAX_ARRAY_SIZE;
}

答案 1 :(得分:1)

这不是一个特别的声明。它的三元声明:

(condtion) ? value_if_true : value_if_flase;

您也可以使用它将值放入变量

string res = ( i < 3 ) ? "i < 3" : "i > 3";

这是一个简短的写作方式:

string res;

if(i<3)
    res = "i < 3";
else
    res = "i > 3";

答案 2 :(得分:0)

语法

testStatement ? (return if true) : (return if false) 

是在一行中执行if语句的标准方法。基本上你有一个测试(通常检查一个变量的值)。如果测试为true,则执行测试后的第一个语句。如果为false,则执行第二个语句(冒号&#39;:&#39;之后)。它取代了以下内容:

if (statement) {
  <return this value if true>;
} else {
  <return this value if false>;
}