OK私は奇妙な問題を抱えています。コードは次のとおりです。メソッド名はreturnMultiPartHeading
if (recursionCount > 6 || i == list.size() - 1)
return -1;
multiPartHeading = multiPartHeading + " " + list.get(i + 1).getText();
Token token = new Token();
token.setText(multiPartHeading);
if (isHeadingType(token)) {
System.out.println("found " + multiPartHeading);
System.out.println("returning ...");
System.out.println("I is " + (i + 1));
return (i + 1);
} else {
returnMultiPartHeading(list, i + 1, multiPartHeading,
++recursionCount);
}
System.out.println("returning -1");
return -1;
}
サンプル実行の出力は次のとおりです。
found xyz
returning...
I is 2
returning -1
なぜこうなった??は にif (isHeadingType(token))
評価されtrue
、2 つのメッセージを出力してから、 を完全にスキップしreturn i+1
てreturn -1
代わりに に移動します。私が呼び出した場所では、戻り値として 2 ではなく -1 が返されます。これはなぜですか?? この動作は見たことがありません。