我不确定为什么Eclipse会说"i ++"是死代码,为什么我没有增加.
for(int i = 0; i < holdings.length; i++)
{
if(holdings[i].holdingID.equals(userHoldingIDInput) == true)
{
holdings[i].print();
System.out.println();
return;
}
else
{
System.out.println("The Holding ID you entered was not found,"
+ " please try again." + "\n");
return;
}
}
Run Code Online (Sandbox Code Playgroud)
有人可以向我解释我做错了什么和解决方案吗?谢谢!
条件结束时的两个分支都带有一个返回:
if (...) {
// ...
return;
} else {
// ...
return;
}
Run Code Online (Sandbox Code Playgroud)
所以i++永远不会增加.
请注意,基本for语句的一般结构是:
for ( ForInit ; Expression ; ForUpdate ) Statement
Run Code Online (Sandbox Code Playgroud)
{
ForInit;
while (Expression) {
Statement;
ForUpdate;
}
}
Run Code Online (Sandbox Code Playgroud)
因此,如果Statement无条件返回,ForUpdate则永远不会执行,因此它已被正确识别为死代码.
我不确定你打算做什么,但我认为你的else分支实际上应该在循环之外:
for(int i = 0; i < holdings.length; i++) {
if (holdings[i].holdingID.equals(userHoldingIDInput)) {
// ...
return;
}
}
System.out.println("The Holding ID you entered was not found,"
+ " please try again." + "\n");
return; // Might be unnecessary; depends upon what follows.
Run Code Online (Sandbox Code Playgroud)