今日は何時間も働いているので、何かばかげているかもしれませんが、この時点で私はちょっと盲目で、この行動の説明を探しています。2同じ機能で射撃を返しますか?
私はこの問題の例を作った私が見つけた解決策は解決策ではありません。
問題:私はshotCountとして1を、カウントダウンには9を渡します。 私はデバッグ時に結果を返します。実行すると最初に表示され、戻り値2を実行しますが、elseも実行すると決定します。最終的には-1
public int getNextShot(int shotCount, int Countdown)
{
if ((shotCount == 1) && (Countdown != 10)) return 2;
else if (shotCount == 0) return 1;
else return -1;
}
を返すが、私はこの(同じパラメータ)を行う場合、それは動作します:
public int getNextShot(int shotCount, int Countdown)
{
int res = -2;
if ((shotCount == 1) && (Countdown != 10)) res = 2;
else if (shotCount == 0) res = 1;
else res = -1;
return res;
}
私はここで何かが足りないのですか?
ありがとうございました:)
なぜあなたは波括弧を使用していません? –
このメソッドを呼び出すコードを投稿し、なぜ "2戻り値を返す"と思うのですか(これは少なくとも記述されているようにJavaでは不可能です)。 – jkraybill
ブレークポイントを適切な場所に設定していますか?デバッガでコードの実行を継続している間に、誤ってreturn文をスキップして、実際に関数の2回目の呼び出しを取得している可能性があります。リターンを自分の行に分割し、すべての行にブレークポイントを設定してみてください。 (そして、Olegが言ったように、中括弧を使用してください!これは*常に*それらを含む理由の1つです) –