検索

ホームページ  >  に質問  >  本文

java - While,break に関する質問

すみません、なぜこのコードの while ループが else の後ろの部分に入ると、後続の while ループは前半の分岐に入ることはできなくなるのですか? if以降の条件が満たされていれば良いと思いますが、実行結果は最初のループに入れないので壊れません。神にアドバイスを求める:

パブリック クラス SearchString {

リーリー

}
実行結果は -1 10 13 -1 10 13、無限ループです

習慣沉默習慣沉默2787日前635

全員に返信(2)返信します

  • 黄舟

    黄舟2017-05-17 10:04:00

    3回目のクエリでは結果が一致しないため、indexOf()の第2パラメータが0未満の場合は0として扱われます。
    それで、最初のサイクルが再び始まります。

    ブレークポイントを使用してデバッグでき、結果は非常に明確になります

    返事
    0
  • PHP中文网

    PHP中文网2017-05-17 10:04:00

    2回目のループに入るとelseが入り、posは13になります。次のループ、つまり 3 番目のループに入っても、else に入ります。
    今度はelseでaが16になり、posが-1になり、次のループs1,indexOf(s2,pos)が0のままelseに入ってしまうので、無限ループが発生します。

    elseのposを毎回変更する必要はなく、s1文字列の後半を直接インターセプトする必要があると思います。

    返事
    0
  • キャンセル返事