dポイントプレゼントキャンペーン実施中!

Javaについて質問です。この無限ループになってしまうんだが意味わかりません。外側のメソッドが一回呼び出されるだけで終わりじゃないんでしょうか?

「Javaについて質問です。この無限ループ」の質問画像

A 回答 (2件)

写真見づれぇなぁ(苦笑)。



> 外側のメソッドが一回呼び出されるだけで終わりじゃないんでしょうか?

そうはならない。
基本的にそう書くと「再帰呼び出し」になるのね。

attack()をattack()を呼び出す事で定義 => 中でattack()を呼び出す -> 中でattack()を呼び出す -> 中でattack()を呼び出す・・・・

と永遠に「自分自身を呼び出す」事になる。しかも終了条件が無い。だから無限ループになる、って事。
「Javaについて質問です。この無限ループ」の回答画像1
    • good
    • 0
この回答へのお礼

ありがとうございます。やっと分かりました。

お礼日時:2021/10/09 23:13

自分自身を呼び出すコードを、実行される度に呼び出されるなら、それは無限ループになるでしょう。


そんなのはオブジェクト指向やクラスとは関係のないことです。
再帰処理にしたいなら、ちゃんと再帰が終わる条件が定まって、その条件の時に再帰が終わる実装がされなければなりません。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!