再帰関数が機能しない

kivok94

私は、ページのパスと次のページに言及するタグの名前クラスを指定するプログラムを書いています。

これが私が試したコードです:

public String pagination_get_link(String path, String pagnNextLink_tag) throws IOException{
        Document doc = Jsoup.parse(new File(path), "UTF-8");
        Element url = doc.getElementById(pagnNextLink_tag);
        String url_s = url.attr("href");
        pagination_get_link(url_s,pagnNextLink_tag);

        return url_s;

    }

ページの例は次のようなページです:ここにリンクの説明を入力してください

ページ付けのすべてのリンクを取得するまでループする再帰メソッドを作成したいと思います。前もって感謝します 。

Jite

再帰関数は永久に実行され続けます。これにより、プログラムがスタックメモリを使い果たしてクラッシュするはずです。要素が見つからないためにクラッシュしない場合でも、このような場合に例外をキャッチすることに依存しているとは感じません。良い考えのように。

再帰ループを作成する場合、結果を返す必要があり、「完了」した場合は関数自体を再度呼び出す必要はありません。
つまり、処理するデータがこれ以上ない場合は、それを実行する必要があります。これで、クラッシュするまでループを実行し続けることができます。

メソッドをどのように機能させるかはよくわかりませんが、正直なところ、この場合は再帰が必要ないようです。通常のwhileループなどを使用することをお勧めします。


編集:

再帰コードを本当に使用したい場合は、url_sが空の場合に関数を呼び出す前に戻ると、次のようなトリックが実行されます...

public String pagination_get_link(String path, String pagnNextLink_tag) throws IOException{
    Document doc = Jsoup.parse(new File(path), "UTF-8");
    Element url = doc.getElementById(pagnNextLink_tag);
    String url_s = url.attr("href");
    // Not sure how to check if its empty, so change it to what you need.
    if(url_s == "") { 
      return "";
    }
    pagination_get_link(url_s,pagnNextLink_tag);

    return url_s;
}

IDなどで要素を取得しようとすると例外がスローされる可能性があります。その場合は、取得を試みる前に、要素が存在するかどうか、「href」属性があるかどうかを確認したいと思います。そうではなく、その時点で戻ってください。

また、結果には何もしないため、関数から文字列を返す必要はありません。それを無効に変更し、return;戻ってくるはずのときにちょうど

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

再帰的な関数従属性が機能しない

分類Dev

再帰的なOCaml関数が機能しない

分類Dev

if句が再帰関数で機能していない

分類Dev

再帰関数のjsが機能しない

分類Dev

カーソルが機能しないSQLServer関数の再帰

分類Dev

Javascript再帰関数が機能しない

分類Dev

VBA再帰関数が機能しない

分類Dev

JavaScript再帰ノード等価関数が機能しない

分類Dev

C-再帰関数でremove()が機能しない

分類Dev

再帰関数が再帰しない

分類Dev

将来のタイプの再帰関数が正しく機能しない

分類Dev

再帰関数ではポインタ代入が機能しない

分類Dev

Beautifulsoup:findAll再帰が機能しない

分類Dev

再帰検索が機能しない

分類Dev

変更された関数が再帰なしで意図したとおりに機能しない

分類Dev

再帰的なフレンド関数がVB6で機能しないのはなぜですか?

分類Dev

ラムダを使用した再帰関数、なぜこれが機能しないのですか?

分類Dev

再帰的に呼び出すと、Python関数が正しく機能しないのはなぜですか?

分類Dev

再帰関数でキャッチが機能しないようにしてください

分類Dev

Javascriptへの再帰的なPython関数の変換が機能しない、配列の問題

分類Dev

OCaml-再帰的な階乗関数の戻り値の印刷が機能しない

分類Dev

goroutineとして自分自身を呼び出すgolang再帰関数が期待どおりに機能しない

分類Dev

再帰関数が正しく機能していませんか?

分類Dev

time.sleep()関数がScrapy再帰Webスクレーパー内で機能しない

分類Dev

関数からの復帰が機能しない(イオン)

分類Dev

再帰関数が期待どおりに機能していません。

分類Dev

再帰関数がポインターで機能していません

分類Dev

再帰的範囲機能が機能しない

分類Dev

リストの積の再帰機能が機能しない

Related 関連記事

  1. 1

    再帰的な関数従属性が機能しない

  2. 2

    再帰的なOCaml関数が機能しない

  3. 3

    if句が再帰関数で機能していない

  4. 4

    再帰関数のjsが機能しない

  5. 5

    カーソルが機能しないSQLServer関数の再帰

  6. 6

    Javascript再帰関数が機能しない

  7. 7

    VBA再帰関数が機能しない

  8. 8

    JavaScript再帰ノード等価関数が機能しない

  9. 9

    C-再帰関数でremove()が機能しない

  10. 10

    再帰関数が再帰しない

  11. 11

    将来のタイプの再帰関数が正しく機能しない

  12. 12

    再帰関数ではポインタ代入が機能しない

  13. 13

    Beautifulsoup:findAll再帰が機能しない

  14. 14

    再帰検索が機能しない

  15. 15

    変更された関数が再帰なしで意図したとおりに機能しない

  16. 16

    再帰的なフレンド関数がVB6で機能しないのはなぜですか?

  17. 17

    ラムダを使用した再帰関数、なぜこれが機能しないのですか?

  18. 18

    再帰的に呼び出すと、Python関数が正しく機能しないのはなぜですか?

  19. 19

    再帰関数でキャッチが機能しないようにしてください

  20. 20

    Javascriptへの再帰的なPython関数の変換が機能しない、配列の問題

  21. 21

    OCaml-再帰的な階乗関数の戻り値の印刷が機能しない

  22. 22

    goroutineとして自分自身を呼び出すgolang再帰関数が期待どおりに機能しない

  23. 23

    再帰関数が正しく機能していませんか?

  24. 24

    time.sleep()関数がScrapy再帰Webスクレーパー内で機能しない

  25. 25

    関数からの復帰が機能しない(イオン)

  26. 26

    再帰関数が期待どおりに機能していません。

  27. 27

    再帰関数がポインターで機能していません

  28. 28

    再帰的範囲機能が機能しない

  29. 29

    リストの積の再帰機能が機能しない

ホットタグ

アーカイブ