我浏览了java源代码,ArrayList.java-
private static int hugeCapacity(int minCapacity) {
if (minCapacity < 0) // overflow
throw new OutOfMemoryError();
return (minCapacity > MAX_ARRAY_SIZE) ?
Integer.MAX_VALUE :
MAX_ARRAY_SIZE;
}
在发布这个问题之前,我在这个网站上看了看,没有发现任何有帮助的东西。我还查看了< code>return()的文档,但是没有成功。也许我找错了东西。
不管怎样,那个返回语句在做什么?
语法
testStatement ? (return if true) : (return if false)
是在一行中执行if语句的标准方法。基本上你有一个测试(通常检查变量的值)。如果它测试为真,则执行测试后的第一条语句。如果它是假的,则执行第二条语句(冒号':'之后)。它取代了以下内容:
if (statement) {
<return this value if true>;
} else {
<return this value if false>;
}
return (minCapacity > MAX_ARRAY_SIZE) ?
Integer.MAX_VALUE :
MAX_ARRAY_SIZE;
这里的return是传递给它的三元运算符。它的工作方式类似于if-else
if(minCapacity > MAX_ARRAY_SIZE){
return Integer.MAX_VALUE;
}
else{
return MAX_ARRAY_SIZE;
}
这不是特别的声明。这是三元语句:
(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";
我不得不使用全局变量found来指示在哪里找到了一个和。返回语句始终未定义。 此外,如果在下面的if语句中使用return语句,代码将无法正常工作。 这不是问题的最佳解决方案,但这是我得到的工作版本。 返回语句之间的****,删除时代码工作,否则我要么得到false或未定义。我不明白这部分!为什么删除返回就能解决问题,我认为每个递归调用都必须用返回语句进行。 问题可能是由于多次呼叫造成的吗?我是不
有人能用简单的英语解释一下这句话背后的逻辑吗? 假设mContainsLoadingRow为布尔值,如果< code>mContainsLoadingRow为< code>true, 然后返回< code > getContentDataSize()1 。 如果没有,则返回 这是正确的看待方式吗?
我有一个if语句,它递归地调用自己在二叉查找树中查找值。 当我试图编译程序时,它会因为结尾没有return语句而感到不安。程序最终应该命中一个return语句,但为了使其编译,我在最后添加了一个return语句。但是程序总是从该语句返回,即使它在else-if语句中表示to。我知道它到达了那个语句,但我不知道为什么它没有从那个语句中返回。
我正在使用JDBC执行Oracle语句,如下所示: 我在Java找到了几种称呼上面的声明的方法,主要是: > 使用OraclePreparedStatement: 使用CallableStatement: > 方法#2抛出“SQLException:Not all return parameters registered”,但是,如果我将SQL语句包装为“begin..end;”-那么方法2就很好
问题内容: 为什么这给了我一个丢失的退货陈述错误?每个if / else都有返回值,最后一个括号出现错误 问题答案: 每个语句都在一个语句内。虽然从逻辑上讲这是不可能的,但是当所有评估都不为真时,编译器需要返回。 我建议: 我认为,此解决方案可解决编译器问题并稍微提高可读性。 或者,有以下解决方案: 引发异常将使你可以退出方法而无需返回任何信息……因为可以说,如果到达最后一个,显然会出错。
我在类中使用下面的代码,允许用户设置声明的的第一点、第二点或第三点。 编译器告诉我: 但是我认为catch语句的目的是能够捕获错误并返回描述错误的字符串,而不必担心匹配函数的返回类型。